Стандартные периферийные драйвера(Standard Peripherals Library Drivers) - это по сути и есть Standard Peripheral Libraries(SPL), потому что кроме этих драйверов в SPL ничего больше и нет. Соответственно в папке StdPeriph_Driver находится SPL, если скачать SPL от ST, то в архиве эта папка будет на одном уровне с папкой CMSIS. Это две разные либы, внутри CMSIS никакой SPL нет.
STM32 новичку в ARM что к чему
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704316#p3704316"]Я именно это и писал, что в SPL и CMSIS стандартные переферийные драйвера идентичны, но в CMSIS так же есть RTE драйвера, RTOS, DSP и NN.[/uquote]
Стандартные периферийные драйвера(Standard Peripherals Library Drivers) - это по сути и есть Standard Peripheral Libraries(SPL), потому что кроме этих драйверов в SPL ничего больше и нет. Соответственно в папке StdPeriph_Driver находится SPL, если скачать SPL от ST, то в архиве эта папка будет на одном уровне с папкой CMSIS. Это две разные либы, внутри CMSIS никакой SPL нет.
Стандартные периферийные драйвера(Standard Peripherals Library Drivers) - это по сути и есть Standard Peripheral Libraries(SPL), потому что кроме этих драйверов в SPL ничего больше и нет. Соответственно в папке StdPeriph_Driver находится SPL, если скачать SPL от ST, то в архиве эта папка будет на одном уровне с папкой CMSIS. Это две разные либы, внутри CMSIS никакой SPL нет.
- Реклама
Reflector, распакуйте CMSIS, например, Keil.STM32F1xx_DFP.2.3.0.pack, архиватором и увидите в папке Device\StdPeriph_Driver будут директории inc и src идентичные одноименным директориям из STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver
Сама же CMSIS предлагает к использованию уж RTE драйвера (директория RTE_Driver в CMSIS), которые я и назвал "более высокоуровневыми", чем SPL.
Сама же CMSIS предлагает к использованию уж RTE драйвера (директория RTE_Driver в CMSIS), которые я и назвал "более высокоуровневыми", чем SPL.
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Вторую часть делает производитель чипа. В случае с STM те самые пресловутые индусы. И её можно смело выкинуть, оставив только заголовочный файл, описывающий регистры микроконтроллера.Библиотека CMSIS включает в себя следующие компоненты:
CMSIS-CORE: API для ядра Cortex-M и периферии. Стандартизированный интерфейс доступен для Cortex-M0, Cortex-M3, Cortex-M4, SC000, и SC300. Включает дополнительные SIMD-инструкции для Cortex-M4.
CMSIS-Driver: определяет основные драйверы интерфейсов периферии. Содержит API для операционных систем реального времени (ОСРВ, или англ. Real-Time operating systems — RTOS) и соединяет микроконтроллер с промежуточным ПО (стек коммуникации, файловая система или графический интерфейс).
CMSIS-DSP: коллекция из более чем 60 функций для различных типов данных (относятся к обработке сигналов): с фиксированной точкой и с плавающей точкой (одинарной точности, 32 бита). Библиотека доступна для Cortex-M0, Cortex-M3, и Cortex-M4. Реализация библиотеки для Cortex-M4 оптимизирована c использованием SIMD-инструкций.
CMSIS-RTOS API: общий API для систем реального времени. Используя функции данного интерфейса вы можете отойти от конкретной реализации операционной системы.
CMSIS-DAP (Debug Access Port): стандартизованное программное обеспечение для отладчика (Debug Unit).
VladislavS, а потом начинаются вопросы о том, что не работает. Потому что человек не заглянул в какой-то ERRATA или пропустил сноску в даташит, а рабочий пример из SPL он, следуя подобным рекомендациям удалил. И заголовочные файлы SPL тоже нередко полезны и богаты комментариями.
Коллеги, вы не забыли, что SPL "сняты с вооружения"? Для старых чипов они еще есть (сохранились), а к новым нет, и не будет. Производитель рекомендует собирать софтину из кубиков и пользовать дровишки HAL/LL. Нет, конечно, CMSIS никто не отменял, но даже банальный запуск тактирования всего, что нужно, напоминает закат Солнца вручную - коллега dosikus публиковал с подробностями этот кусок для F407, я думаю, он напомнит...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
- Реклама
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]VladislavS, а потом начинаются вопросы о том, что не работает.[/uquote]Только почему-то, почитаешь форум и 9 из 10 вопросов имеет классический вид: вот моя грязная портянка на HAL/SPL/LL (нужное подчеркнуть) почему-то не работает.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]Потому что человек не заглянул в какой-то ERRATA[/uquote]При этом о существовании errata и вовсе не подозревают. Да я и не припомню на форуме хоть одну тему, где проблема вопрошающего была бы из errata.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]или пропустил сноску в даташит,[/uquote]Такое бывает, но с опытом обычно проходит. Намного чаще попадаются не читавшие RM вовсе.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]а рабочий пример из SPL он, следуя подобным рекомендациям удалил.[/uquote]Я краем глаза видел код Reflector. От рекомендации ему пользоваться SPL я чуть со смеху не умер.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]И заголовочные файлы SPL тоже нередко полезны и богаты комментариями.[/uquote]Лишней информации, конечно, не бывает, но лучше потратить время на RM и отладчик.
Добавлено after 1 hour 45 minutes 36 seconds:
[uquote="afz",url="/forum/viewtopic.php?p=3704491#p3704491"]но даже банальный запуск тактирования всего, что нужно, напоминает закат Солнца вручную -[/uquote]Вообще изи. Заходишь в куб, там есть схема тактирования, натыкиваешь в ней нужную конфигурацию
Затем открываешь RM и пишешь по типовому шаблону.
Например, для F427
Или для F303
Или зтёртый до дыр F103
Или простенький L053
и т.д. ...
Всё по одному принципу. Делается один раз для нового чипа, а потом CTRL-C CTRL-V из проекта в проект.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]Потому что человек не заглянул в какой-то ERRATA[/uquote]При этом о существовании errata и вовсе не подозревают. Да я и не припомню на форуме хоть одну тему, где проблема вопрошающего была бы из errata.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]или пропустил сноску в даташит,[/uquote]Такое бывает, но с опытом обычно проходит. Намного чаще попадаются не читавшие RM вовсе.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]а рабочий пример из SPL он, следуя подобным рекомендациям удалил.[/uquote]Я краем глаза видел код Reflector. От рекомендации ему пользоваться SPL я чуть со смеху не умер.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704433#p3704433"]И заголовочные файлы SPL тоже нередко полезны и богаты комментариями.[/uquote]Лишней информации, конечно, не бывает, но лучше потратить время на RM и отладчик.
Добавлено after 1 hour 45 minutes 36 seconds:
[uquote="afz",url="/forum/viewtopic.php?p=3704491#p3704491"]но даже банальный запуск тактирования всего, что нужно, напоминает закат Солнца вручную -[/uquote]Вообще изи. Заходишь в куб, там есть схема тактирования, натыкиваешь в ней нужную конфигурацию
Спойлер
Например, для F427
Спойлер
Код: Выделить всё
// Настройка FLASH
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_ICEN | FLASH_ACR_DCEN | FLASH_ACR_LATENCY_5WS;
// ------------------ Тактирование -------------------------
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSION | RCC_CR_HSEON; //Включаем HSE = 8 MHz
while(!(RCC->CR & RCC_CR_HSERDY)); //Ждём включения HSE
//Задаём источники тактирования и прескалеры SYSCLK = 168 МГц USB = 48 МГц
RCC->PLLCFGR = _VAL2FLD(RCC_PLLCFGR_PLLQ,7) | RCC_PLLCFGR_PLLSRC_HSE | RCC_PLLCFGR_PLLP_div2 |
_VAL2FLD(RCC_PLLCFGR_PLLN,168) | _VAL2FLD(RCC_PLLCFGR_PLLM,4);
RCC->CFGR = RCC_CFGR_MCO2_HSE | RCC_CFGR_MCO2PRE_div1 | RCC_CFGR_MCO1PRE_div1 | RCC_CFGR_I2SSRC_PLLI2S | RCC_CFGR_MCO1_HSE |
RCC_CFGR_PPRE2_DIV2 | RCC_CFGR_PPRE1_DIV4 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_HSI;
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSION | RCC_CR_HSEON | RCC_CR_PLLON; //Включаем PLL
while(!(RCC->CR & RCC_CR_PLLRDY)); //Ждём включения PLL
//Переключаемся на PLL с установленнными ранее прескалерами
RCC->CFGR = RCC_CFGR_MCO2_HSE | RCC_CFGR_MCO2PRE_div1 | RCC_CFGR_MCO1PRE_div1 | RCC_CFGR_I2SSRC_PLLI2S | RCC_CFGR_MCO1_HSE |
RCC_CFGR_PPRE2_DIV2 | RCC_CFGR_PPRE1_DIV4 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_PLL;
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSEON | RCC_CR_PLLON; //Выключаем HSIСпойлер
Код: Выделить всё
// Настройка FLASH
FLASH->ACR = FLASH_ACR_PRFTBE | _VAL2FLD(FLASH_ACR_LATENCY,2);
// ------------------ Тактирование -------------------------
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSION | RCC_CR_HSEON; //Включим HSE
while(!(RCC->CR & RCC_CR_HSERDY)); //Ждём включения HSE
//Задаём источники тактирования и прескалеры
RCC->CFGR = RCC_CFGR_MCO_NOCLOCK | RCC_CFGR_I2SSRC_SYSCLK | RCC_CFGR_USBPRE_DIV1_5 | RCC_CFGR_PLLMUL9 |
RCC_CFGR_PLLXTPRE_HSE_PREDIV_DIV2 | //Раскомментировать для кварца 16 МГц
RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_HSE;
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_PLLON | RCC_CR_HSEON; //Включим PLL, выключим HSI
while(!(RCC->CR & RCC_CR_PLLRDY)); //Ждём включения PLL
//Переключаемся на PLL с установленнными ранее прескалерами
RCC->CFGR = RCC_CFGR_MCO_NOCLOCK | RCC_CFGR_I2SSRC_SYSCLK | RCC_CFGR_USBPRE_DIV1_5 | RCC_CFGR_PLLMUL9 |
RCC_CFGR_PLLXTPRE_HSE_PREDIV_DIV2 | //Раскомментировать для кварца 16 МГц
RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_PLL;
Спойлер
Код: Выделить всё
// Настройка FLASH
FLASH->ACR = FLASH_ACR_PRFTBE | _VAL2FLD(FLASH_ACR_LATENCY,2);
// ------------------ Тактирование -------------------------
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSION | RCC_CR_HSEON; //Включаем HSE
while(!(RCC->CR & RCC_CR_HSERDY)); //Ждём пока запустится HSE
//Задаём источники тактирования и прескалеры
// SYSCLK = 72 МГц, USB = 48 МГц, PCLK1 = 36 МГц, PCLK2 = 72 МГц, ADC = 12 МГц
RCC->CFGR = RCC_CFGR_MCO_NOCLOCK | RCC_CFGR_USBPRE_1d5 | RCC_CFGR_PLLMULL9 | RCC_CFGR_PLLSRC_HSE | RCC_CFGR_ADCPRE_DIV6 |
//RCC_CFGR_PLLXTPRE | // Раскомментировать для кварца 16 МГц
RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_HSE;
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSEON | RCC_CR_PLLON; // Включаем PLL, выключаем HSI
while(!(RCC->CR & RCC_CR_PLLRDY)); // Ждём пока запустится PLL
//Переключаемся на PLL с установленнными ранее прескалерами
RCC->CFGR = RCC_CFGR_MCO_NOCLOCK | RCC_CFGR_USBPRE_1d5 | RCC_CFGR_PLLMULL9 | RCC_CFGR_PLLSRC_HSE | RCC_CFGR_ADCPRE_DIV6 |
//RCC_CFGR_PLLXTPRE | // Раскомментировать для кварца 16 МГц
RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_PLL;Спойлер
Код: Выделить всё
// Настройка FLASH
FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_LATENCY;
// ------------------ Тактирование -------------------------
RCC->CR = RCC_CR_MSION | RCC_CR_HSION; //Включим HSI16
while(!(RCC->CR&RCC_CR_HSIRDY));
RCC->CFGR = RCC_CFGR_MCOPRE_DIV1 | RCC_CFGR_MCO_NOCLOCK | RCC_CFGR_PLLDIV2 | RCC_CFGR_PLLMUL4 | RCC_CFGR_PLLSRC_HSI |
RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV1 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_HSI;
RCC->CR = RCC_CR_HSION | RCC_CR_PLLON; //Включим PLL, выключим MSI
while(!(RCC->CR&RCC_CR_PLLRDY));
RCC->CFGR = RCC_CFGR_MCOPRE_DIV1 | RCC_CFGR_MCO_NOCLOCK | RCC_CFGR_PLLDIV2 | RCC_CFGR_PLLMUL4 | RCC_CFGR_PLLSRC_HSI |
RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_PPRE1_DIV1 | RCC_CFGR_HPRE_DIV1 | RCC_CFGR_SW_PLL;Всё по одному принципу. Делается один раз для нового чипа, а потом CTRL-C CTRL-V из проекта в проект.
VladislavS, всего месяц назад обсуждали способы обхода баги в некоторых stm8, возникающей в первой операции деления, если операция деления была прервана дважды. Сначала в основной программе, затем в предыдущем обработчике прерывания.
А с Вашим чисто теоретическим подходом к обучению ни один методист не согласится. Эффективность обучения возрастает в разы, если чтение теории совмещается с разбором практических примеров использования этой теории.
Ну и несмотря на индийский код SPL, он все же соответствует определенным стандартам. И уж лучше начинающему использовать эти стандарты, чем лепить свой код мусорного и неоднозначного вида.
afz, а разве для новых чипов SPL перестали включать в CMSIS? Только RTE драйвера с оверхедом предлагают?
А с Вашим чисто теоретическим подходом к обучению ни один методист не согласится. Эффективность обучения возрастает в разы, если чтение теории совмещается с разбором практических примеров использования этой теории.
Ну и несмотря на индийский код SPL, он все же соответствует определенным стандартам. И уж лучше начинающему использовать эти стандарты, чем лепить свой код мусорного и неоднозначного вида.
afz, а разве для новых чипов SPL перестали включать в CMSIS? Только RTE драйвера с оверхедом предлагают?
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]VladislavS, всего месяц назад обсуждали способы обхода баги в некоторых stm8, возникающей в первой операции деления, если операция деления была прервана дважды. Сначала в основной программе, затем в предыдущем обработчике прерывания.[/uquote]Каким образом SPL поможет это обойти?
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]А с Вашим чисто теоретическим подходом к обучению ни один методист не согласится.[/uquote]Это у меня то чисто теоретический подход? Я под столом второй раз
Это не я в прошлом сообщении рекомендовал сесть за отладчик вместо чтения индусского кода? Под спойлером кода тоже не видно?
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]Эффективность обучения возрастает в разы, если чтение теории совмещается с разбором практических примеров использования этой теории.[/uquote]Разбирайте, ктож не даёт. Только разбирать HAL это мазохизм.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]Ну и несмотря на индийский код SPL, он все же соответствует определенным стандартам. И уж лучше начинающему использовать эти стандарты, чем лепить свой код мусорного и неоднозначного вида.[/uquote]Начинающему надо начинать с азов. Мусор неоднозначного вида можно писать и с библиотеками, какими бы кошерными они ни были.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]а разве для новых чипов SPL перестали включать в CMSIS? Только RTE драйвера с оверхедом предлагают?[/uquote]Хм, после этого я теоретик. Ну, ну...
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]А с Вашим чисто теоретическим подходом к обучению ни один методист не согласится.[/uquote]Это у меня то чисто теоретический подход? Я под столом второй раз
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]Эффективность обучения возрастает в разы, если чтение теории совмещается с разбором практических примеров использования этой теории.[/uquote]Разбирайте, ктож не даёт. Только разбирать HAL это мазохизм.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]Ну и несмотря на индийский код SPL, он все же соответствует определенным стандартам. И уж лучше начинающему использовать эти стандарты, чем лепить свой код мусорного и неоднозначного вида.[/uquote]Начинающему надо начинать с азов. Мусор неоднозначного вида можно писать и с библиотеками, какими бы кошерными они ни были.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704558#p3704558"]а разве для новых чипов SPL перестали включать в CMSIS? Только RTE драйвера с оверхедом предлагают?[/uquote]Хм, после этого я теоретик. Ну, ну...
VladislavS, так код обхода этой баги и был обнаружен в SPL. А потом уже я отыскал соответствующую ERRATA
Вы предлагаете приступать к практике без изучения примеров кода, ориентируясь только на теорию. Это и есть чисто теоретическая методология, неприемлемая в педагогике.
И не углублялась в демагогию, пожалуйста. Речь была исключительно об изучении кода SPL. Об использовании SPL в качестве библиотеки, а тем более о HAL, я однозначно высказал свое мнение выше.
Вы предлагаете приступать к практике без изучения примеров кода, ориентируясь только на теорию. Это и есть чисто теоретическая методология, неприемлемая в педагогике.
И не углублялась в демагогию, пожалуйста. Речь была исключительно об изучении кода SPL. Об использовании SPL в качестве библиотеки, а тем более о HAL, я однозначно высказал свое мнение выше.
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704584#p3704584"]VladislavS, так код обхода этой баги и был обнаружен в SPL. А потом уже я отыскал соответствующую ERRATA[/uquote]Лишнее подтверждение ошибочности подхода. Errata изучается до рисования схемы на этапе выбора чипа. Там и написано как обходить. Никакой SPL для этого не нужен.
VladislavS, "кто из вас без греха, первый брось на неё камень" (с)
Хорошо, что такого ангела, как Вы, тогда там не оказалось )))
Методология стандартна:
1. Изучение теории
2. Изучение практических примеров применения этой теории
3. Практика.
Вы же исключаете второй пункт, предлагая приступать к практике сразу после теории. Я ни разу еще не встречал человека, который мог изучить теорию так, чтобы он усвоил ее в стопроцентном объеме. Вы, видимо, будете первым )))
Разбор практических примеров применения теории позволяет намного лучше эту теорию понимать и усваивать. Я даже не представляю, насколько медленно Вы обучаетесь, исключая для себя этот этап.
Заметьте, что путь:
1. Обнаружение баги
2. Изучение кода, в котором эта бага не проявляется
3. Поиск теории, описывающей наличие и способы обхода этой баги
оказался существенно короче и эффективней, чем повтороное изучение всей теории, без понимания, в каких же случаях результат работы обработчика прерывания неправильный. Особенно, когда это возникает при очень редком стечении обстоятельств и поймать его в дебагере мало реально.
Хорошо, что такого ангела, как Вы, тогда там не оказалось )))
Методология стандартна:
1. Изучение теории
2. Изучение практических примеров применения этой теории
3. Практика.
Вы же исключаете второй пункт, предлагая приступать к практике сразу после теории. Я ни разу еще не встречал человека, который мог изучить теорию так, чтобы он усвоил ее в стопроцентном объеме. Вы, видимо, будете первым )))
Разбор практических примеров применения теории позволяет намного лучше эту теорию понимать и усваивать. Я даже не представляю, насколько медленно Вы обучаетесь, исключая для себя этот этап.
Заметьте, что путь:
1. Обнаружение баги
2. Изучение кода, в котором эта бага не проявляется
3. Поиск теории, описывающей наличие и способы обхода этой баги
оказался существенно короче и эффективней, чем повтороное изучение всей теории, без понимания, в каких же случаях результат работы обработчика прерывания неправильный. Особенно, когда это возникает при очень редком стечении обстоятельств и поймать его в дебагере мало реально.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704355#p3704355"]Reflector, распакуйте CMSIS, например, Keil.STM32F1xx_DFP.2.3.0.pack, архиватором и увидите в папке Device\StdPeriph_Driver будут директории inc и src идентичные одноименным директориям из STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver[/uquote]
Cама ST в доках к SPL позиционирует его как нечто находящееся уровнем выше CMSIS.

Формально SPL мог бы быть частью CMSIS Driver, но там универсальный API, а у SPL/HAL/LL свои с ним не совместимые API.
Cама ST в доках к SPL позиционирует его как нечто находящееся уровнем выше CMSIS.

Формально SPL мог бы быть частью CMSIS Driver, но там универсальный API, а у SPL/HAL/LL свои с ним не совместимые API.
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
ПростоНуб, бред какой-то. Сам можешь хоть в туалет по методичке ходить, а на меня свои фантазии не распространяй.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
ПростоНуб, Vladislav , уже подсказал что вам нужно осознать - сходите на сайт арм, там увидите что первостепенно и архиважно. Индусы из стм просто неуспевают исправлять ошибки, в то время как CMSIS незыблема.
dosikus, нравится Вам изучать работу с периферией по RTE драйверам CMSIS, написанными теми же индусами - пожалуйста. Мазохизм не запрещен)))
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
ПростоНуб, зачем ковыряться в индусокоде SPL или кала, если есть сниппеты? Они, понятное дело, только под STM32F0, но путем несложного чтения даташита и мануала можно под нужную линейку переделать.
И хватит уже путать SMSIS и кал! Базовый SMSIS — просто набор хидеров для ARM'яней! Для поддержки конкретных камней нужно откуда-нибудь (хоть из того же SPL) выдрать заголовочные файлы с определениями регистров. Здесь у меня можно увидеть, что я именно так и поступил: заголовочные файлы под конкретные камни выдрал из SPL, добавив туда заголовочники для определенных линеек и базовые макросы для ногодрыга.
Ах, да: забыл еще про стартап (который был выдран из opencm3 и малость подправлен) и ld-скрипт (оттуда же, но тоже иной раз приходится новые секции добавлять для возможности эмуляции EEPROM во флеш-памяти).
И хватит уже путать SMSIS и кал! Базовый SMSIS — просто набор хидеров для ARM'яней! Для поддержки конкретных камней нужно откуда-нибудь (хоть из того же SPL) выдрать заголовочные файлы с определениями регистров. Здесь у меня можно увидеть, что я именно так и поступил: заголовочные файлы под конкретные камни выдрал из SPL, добавив туда заголовочники для определенных линеек и базовые макросы для ногодрыга.
Ах, да: забыл еще про стартап (который был выдран из opencm3 и малость подправлен) и ld-скрипт (оттуда же, но тоже иной раз приходится новые секции добавлять для возможности эмуляции EEPROM во флеш-памяти).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704833#p3704833"]dosikus, нравится Вам изучать работу с периферией по RTE драйверам CMSIS, написанными теми же индусами - пожалуйста. Мазохизм не запрещен)))[/uquote]
Ну во первых изучать работу периферии по чьей-то писанине , само по себе полный бред.
Это прерогатива выходцев с ПС кодинга.
Периферия изучается по документации производителя....
Кстати RTE драйвера это блажь кайло чисто...
А CMSIS это и не драйвера и не либа, это стандарт для писателей дров. Ощутите разницу...
Ну во первых изучать работу периферии по чьей-то писанине , само по себе полный бред.
Это прерогатива выходцев с ПС кодинга.
Периферия изучается по документации производителя....
Кстати RTE драйвера это блажь кайло чисто...
А CMSIS это и не драйвера и не либа, это стандарт для писателей дров. Ощутите разницу...
Последний раз редактировалось dosikus Сб сен 21, 2019 18:48:38, всего редактировалось 1 раз.
Eddy_Em, поясните связь между RTE драйверами CMSIS и HAL. И изучать МК переделевыя то, что написано для одного МК под другой - это уже практика, до которой и следует разобрать теорию на примерах. А у Вас какой-то замкнутый круг получается: сначала переделать, а потом изучать )))
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
ПростоНуб, у вас каша в голове.
CMSIS это стандарт описания работы с периферией.
RTE это либы и прерогатива кайла.
То что вы называете практикой - повсеместно -глупое тырканье с такими же глупыми ошибками и вопросами.
Если индивидиум не знает периферии он и в спл и калокубе будет только тыкаться ...
CMSIS это стандарт описания работы с периферией.
RTE это либы и прерогатива кайла.
То что вы называете практикой - повсеместно -глупое тырканье с такими же глупыми ошибками и вопросами.
Если индивидиум не знает периферии он и в спл и калокубе будет только тыкаться ...
dosikus, простите, но каша в голове у Вас. Почитайте внимательно, что входит в состав CMSIS. Там далеко не только CMSIS-Core. На данный момент обсуждается Driver компонент, который по утверждению многих, чем то лучше в CMSIS, чем в SPL для STM32. Для конкретики я рассматриваю STM32F10x. И вижу в CMSIS только два варианта драйверов. Один когруэнтный SPL, а второй - RTE. Так о каких драйверах тогда речь?
А обсуждать различие заголовочных файлов в CMSIS и SPL вообще бессмысленно, так как SPL пользуется заголовочными файлами CMSIS
А обсуждать различие заголовочных файлов в CMSIS и SPL вообще бессмысленно, так как SPL пользуется заголовочными файлами CMSIS


