PROGCONT.RU

Форма входа







Регистрпция Вход/

STM8S IAR создание проекта, настройка для использования SPL (Standard Peripheral Library) и загрузка в контроллер stm8s903k3t6 первой программы.

Как сказал Гагарин «Поехали!».
 С чего начать?
 Первым делом приобретите отладочную плату.нет рисункаЕсли у Вас нет опыта, в электротехнике то рекомендую приобрести stm8 discovery.
  Почему discovery:
        а. Программатор-отладчик;
        б. Имеется согласователь уровней;
        в. Защита программатора, если спалите контролер;
        г. Удобство;
 Что отсутствует кроме программатор-отладчика, в типа таких программаторов как этот.нет рисунка
 Где взять IAR Embedded Workbench ?
          1. С официального сайта, платная;
          2. С официального сайта-бесплатная (с ограничениями);
          3. В помощь сайты созвучные с богом Грома;
  Если вы приобрели программатор-отладчик, добыли и установили IAR и скачали с сайта stm.com SPL (STM8S/A Standard peripherals library) или тут stm8s_SPL, тогда не будем, как говорится мяться на месте!

Создание проекта и подключение SPL.

Поехали!!!

Ссылка на видео в YouTube В директории для удобства, где установлен IAR создаем паку для проекта, название произвольное у меня project.

нет рисунка

 Распаковываем, ранее скаченный с stm.com архив en.stsw-stm8069.zip(STM8S/A Standard peripherals library), копируем в наш проект C:/Program Files/IAR Systems/project папку en.stsw-stm8069/STM8S_StdPeriph_Lib/Libraries/STM8S_StdPeriph_Driver, с содержимом, два файла Release_Notes.html и stm8s-a_stdperiph_drivers_um.chm можно удалить.

нет рисунканет рисунка

 Копируем из папки en.stsw-stm8069STM/8S_StdPeriph_Lib/Project/STM8S_StdPeriph_Template распакованного архива три файла stm8s_conf.h, stm8s_it.c, stm8s_it.h нет рисунка в наш проект папку C:/Program Files/IAR Systems/project/STM8S_StdPeriph_Lib должно получится вот так.

нет рисунка

 С файлами закончили, можно приступать к созданию проекта. Запускаем IAR заходим в Project->Greate New Project, появится это.

нет рисунка

 Выбираем С так как мы хотим творить на СИ, жмем ОК. Далее нам предложат придумать и сохранить наш проект, назовём его ‘test’. Сохраняем конечно в нашу папку C:/Program Files/IAR Systems/project.

нет рисунка

 Настраиваем IAR. Жмем правой кнопкой на test-Debug->Options->General Options в Device выбираем наш контролер stm8s903k3, жмем ОК.

нет рисунка

Продолжаем, жмем правой кнопкой на test-Debug->Options->General Options->C/C++ Kompiler ->Preprocessor жмем кнопку и прописываем пути к нашим папкам, которые скопировали с en.stsw-stm8069(распакованного архива). Прописать надо к
 C:/Program Files/IAR Systems/project,
 C:/Program Files/IAR Systems/project/STM8S_StdPeriph_Driver,
 C:/Program Files/IAR Systems/project/STM8S_StdPeriph_Driver/inc,
 C:/Program Files/IAR Systems/project/STM8S_StdPeriph_Driver/src.

нет рисунка

 Вот результат.

нет рисунка

 Ниже в таблице пишем STM8S903.

нет рисунка

 Жмем ОК.
Жмем правой кнопкой на test-Debug->Options->Debugger выбираем в Driver->ST_LINK. Жмем ОК.

нет рисунка

 Жмем правой кнопкой на test-Debug->Options->Add->Add Group вписываем SPL. Жмем ОК. Должна появится под test-Debug папка SPL, жмем на папку выбираем Add->File и добавляем из C:/Program Files/IAR Systems/project/STM8S_StdPeriph_Driver/src все файлы, жмем Открыть. Вот результат.

нет рисунка

 Жмем на Download and Debug.

нет рисунка

 Получится вот так то, что выскочили ошибки это нормально, компилятор нам сказал, что такой периферии в данном контролере нет.

нет рисунка

 Нам надо данную периферию убрать, жмем правой кнопкой на надпись выделенную красной звездочкой Options и в верхнем левом углу в Exclude from bulid ставим галочку, жмем ОК и так со всеми.

нет рисунка

 Финал! Пишем простой код, мигаем светодиодом.

#include "stm8s.h"
void pause(void);
void main( void )
{
GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_OD_HIZ_SLOW);
 while(1){
   GPIO_WriteHigh(GPIOD, GPIO_PIN_0);
   pause();
   GPIO_WriteLow(GPIOD, GPIO_PIN_0);
   pause();
 }
}

void pause(void){
for(uint16_t i=0;i<60000;i++){}
}

#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1){}
}
#endif


 Забыл, мигать будем порт D пин 0, сохраняем, нажать на ДИСКЕТУ в верхнем левом углу, компилируем и загружаем нашу первую программу(жмем на Download and Debug).Надеюсь, Вы в экстазе!

 ВНИМАНИЕ! Тот код который находится в низу и начинается с #ifdef USE_FULL_ASSERT, должен быть обязателен, без него будет выскакивать ошибка:
Error[Li005]: no definition for "assert_failed" [referenced from C:Program FilesIAR SystemsprojectDebugObjstm8s_gpio.o], все это предназначено для отлова ошибок в SPL и предотвращения зависания, используется для отладки. Если в коде вашей программе есть ошибки то во время работы программы произойдет переход в функцию void assert_failed(uint8_t* file, uint32_t line);.
Все это добавляет дополнительный код и соответственно будет замедлять программу, поэтому если вы не нуждаетесь в этом, то за комментируйте в файле stm8s_conf.h строку #define USE_FULL_ASSERT (1) должно стать //#define USE_FULL_ASSERT (1).


Комментарии  Только зарегистрированные пользователи могут оставлять комментарии!

NOtikinson   2019-06-19 01:45:26
спасибо! инструкции максимально полные, отлично)