Использование библиотек в IAR, версия для STM8S

Позавчера ко мне приехала платка STM8S-Discovery.
Радости были полные штаны ))
Установил себе IAR 1.302 (не кашляющий), залил стандартную периферийную библиотеку для этой серии камней.
Всю жизнь сидел на АВР, но пришла пора «менять коня на переправе» ))
Разумеется, весь блог STM8 перечитал вдоль и поперек, спасибо огромнейшее всем авторам!
И, конечно же, нахватал подводных камней полные памперсы…
Главная затыка случилась с этой статьей, где описывается работа со стандартным firmware для серии STM8L.
И тут оказалось. что библиотеки для STM8L и STM8S вообще-то некисло отличаются…

Для примера, приведу рабочий код для «эски», выполняющий примерно ту же работу, что и в статье по вышеприведенной ссылке (мыргание светиком с использованием прерывания и таймера):
#include "stm8s.h"

int main( void )
{
  CLK_DeInit();
  CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);;

  GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2,ENABLE);
  TIM2_TimeBaseInit(TIM2_PRESCALER_128,62500);
  // Interrupt
  TIM2_ITConfig(TIM2_IT_UPDATE,ENABLE);
  // Start TIM2
  TIM2_Cmd(ENABLE);  
  __enable_interrupt();
  while(1){};
}

INTERRUPT_HANDLER(TIM2_handler,ITC_IRQ_TIM2_OVF)
{
  GPIO_WriteReverse(GPIOD,GPIO_PIN_0);
  TIM2_ClearFlag(TIM2_FLAG_UPDATE);
}

Примерно — потому, что здесь я переключаю источник клока на внешний кварц в отличие от «той» статьи.
Видно, что «руление» источником клока выполняется совершенно другими процедурами, флаги имеют другое название, или как минимум — просто заменены все буквы на заглавные.
Такая же фигня творится и с работой с портами GPIO. Названия функций разные, функцию GPIO_ToggleBits, которая используется для STM8L — система не поняла. Зачем такой разнобой? Или Почему? Фиг знает… Вместо нее применяется GPIO_WriteReverse.

Суть этой моей «статейки» — не то, чтобы кого-то чему-то научить, а предупредить о разнице в написании кода для этих двух семейств STM8 с использованием стандартных библиотек.
  • 0
  • 28 апреля 2012, 19:22
  • ewgeny7

Комментарии (11)

RSS свернуть / развернуть
Да, спроектирована SPL таки довольно фимозно. Они забыли про ключевой момент таких библиотек — абстракцию (HAL).
0
  • avatar
  • Vga
  • 28 апреля 2012, 19:28
На STM8L тоже споткнулся на том, что дефайны имеют разный регистр, и просто так примеры из статей не работают, нужно всё проверять и перепроверять. Начинающим очень осложняет жизнь, но потом уже привыкаешь, и не используешь метод «Copy/Paste».
0
Я уже почти закончил «разборки» с периферией, вчера проект принимал команды по UART, светик мигал на таймере и прерывании, читались часы по ИИЦ и отправлялось время на ПЦ через UART. Всё это тарахтело одновременно )) Сегодня сделал часы на Дискавере + семисегментники, и сделал печатку для STM8S103K3, буду придавать часам законченный вид. Попозже поделюсь всеми файлами.
0
За «статейку» респект — как раз нахожусь в творческих изысканиях.
Сорри за скромность, а не могли бы Вы поделиться STM8S Template?
Пробовал по аналогу с STM8L Template сделать, но, очевидно, руки…
0
Насчет template… Я не очень понимаю, что это такое, извините )))
Некий пак с подобным названием есть внутри firmware, которая качается с сайта ST. Я, собственно о ней и вел речь в этом статейке. Но для чего оно надо — не разбирался. Сейчас я закончил проектик по спецзаданию супруги (пищащий таймер с выводом на LCD Nokia3310), доведу корпус до ума и выложу.
0
Я имел в виду адаптированный Вами шаблон под IAR :-).
В приатаченном Вами архиве к статье «Использование стандартных периферийных библиотек в IAR» реализован функционал под
STM8L. А под STM8S нет пока такого чуда?
Спасибо за внимание.
0
Имеете ввиду пакет firmware для STM8S? www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm8_stdperiph_lib.zip
0
Спасибо огромное :-) Я имел в виду этот пакет, только «прикрученный» вами
к IAR.
Шаблоны используются мои, переделанные из идущих в комплекте. Переделывать пришлось т.к. фирменные у меня почему-то не открывались без кучи ошибок…

… Теперь можно запустить iar и создать новый проект. Должны будут появиться новые варианты проектов, как на заглавном рисунке.


Их нет у меня
Я пытался воспользоваться Вашими шаблонами, но в Вашем
(не этом — а ранее приложенном) архиве функционал только для STM8L.
Еще раз спасибо за внимание и беспокойство :-)
0
может это я чего неправильно понял из вашей переписки, но мне показалось, что Вы приняли двух разных авторов за одного. присмотритесь внимательнее на автора упомянутой статьи с шаблонами.
0
Таки да. Произошла ужасная ошибка :-)
Я приношу свои глубокие извинения.
0
Похоже, что да ))
Статья, на которую я давал ссылку — написана совсем не мною. Надо было мне более конкретно это указать.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.