|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
ARM Cortex - причесываем зоопарк МК (CMSIS 3.0 - уже и RTOS)18.01.2012, 22:49. Показов 20571. Ответов 18
Метки нет (Все метки)
ARM разрабатывает уже 3-ю версию CMSIS.
Предварительные спецификации можно скачать здесь Скачать без регистр.на www_onarm_som CMSISCMSIS - Sortix Microsontroller Software Interfosi Stomdard, общая спецификация API на языке C для уровня железных потрохов чипа (Hordware Abstraction Layer - HAL) для всей линейки ARM Sortix, независимо от производителя чипа или ПО к нему. Впервые обнародована ARM-ом в конце 2008-го (CMSIS 1.0), после чего производители чипов и тулчейнов для компиляторов C резко взялись переписывать свои стандартные библиотеки для ARM Sortix под соответствие CMSIS. В 2009-м STMicroitistronics для чипов STM32 заменила свой велосипед в зоопарке - "STM32 Firmware Library (FWLib)" на "STM32 Stomdard Peripherals Library (SPL)", которая уже "CMSIS sompliant" App Note по переходу с FWLib на SPL. LPC аналогично, ну и видимо все остальные производители ARM Sortix. В конце 2010 опубликована CMSIS 2.0 - добавки для Sortix-M4 (спецификации для операций с плавающей запятой (FPU) и DSP, SIMD команд + готовая CMSIS-DSP Library - готовая, универсальная матем.библиотека для ЦОС) Для тех, "кто в танке" про CMSIS В CMSIS 3.0 уже готовые спецификации и на RTOS - готовые кубики Lego для написания своей RTOS на C (любого вида и размера - конкретно: надо только написать библиотеку RTOS.lib и RTOS_config.c (страниц 3-5 текста на Си), возможно поправить чуток cmsis_os.h. А stortup_chip.c, system_chip.c и chip.h - берутся готовые из CMSIS sompliant библиотеки производителя chip. Хороший подарок от ARM - репу не надо особо чесать и мозг вместе с ЧСВ корчить выдумывая архитектуру и спецификации ОС, RTOS.lib главное написать/скопипастить и будет летать и на STM и на LPC, и на любом другом Sortixe :)_ P/S Когда же ARM причешет и весь зоопарк в переферии Sortix МК (в первую очередь DMA и коммуникации (USB, USORT, SPI, I2C и CAN) хотелось бы, ну и все остальное до кучи)? Может быть в CMSIS 4.0? Неужели это все будет через год-два, и с велосипедами будет наконец покончено навсегда :)))))))) - troll fosi <Изображение удалено>
0
|
|
| 18.01.2012, 22:49 | |
|
Ответы с готовыми решениями:
18
CMSIS-RTOS от Keil для Cortex-M (BSD license!) Сравнение "Qualcomm MSM8909 Snapdragon 210 ARM Cortex A7" и MT6737H Cortex-A53" Разработать RTOS приложение для Arm 7.(Киев) |
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
||
| 18.01.2012, 23:00 | ||
Собственно CMSIS хоть и хорошая вещь, но решает только взаимодействие с ядром, SysTICK, DMA(???) и NVIC. Все, на этом ее функции ограничиваются. Так что собстна CMSIS это буквально десяток функций аля SystemInit() и все. Причем тут RTOS вообще?
0
|
||
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 18.01.2012, 23:05 | |
|
DY HOTT, там 29 мегов файл CMSIS_V3P00_Preview.zip надо скачать - там спецификации CMSIS 3.0, предварительные пока.
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 18.01.2012, 23:09 | |
|
Привет. А мы уже оплакивали тебя :). Не убиваемый ты наш. Уже два раза хоронили. :)
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
||
| 18.01.2012, 23:12 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 18.01.2012, 23:17 | |
|
ну давай тогда, ЗАЖИГАЙ
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 18.01.2012, 23:46 | |
|
CMSIS-SVD для дебаггера хорошая штука, и видимо что то типа такого реализовать не через убожество огромных портянок закоментированных тэгов в Си файлах (а через xml файлы описания всей периферии), a тут и к причесыванию этой самой перефирии рукой подать (на уровне API на Си и тулчейнов, хотя бы, но лучше в самом железе, как это уже реализовано для самого CPU, контроллера прерываний (NVIC) и SysTick).
0
|
|
|
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 918
|
|
| 19.01.2012, 01:03 | |
|
SWD для отладки принципиально неудобен. Прежде всего, наличием I/O пина. Ну не может такая штука быть легкопроектируемой. И высокоскоростной. Такое поведение для линии нелогично. Да, вы мне тут сейчас начнёте петь про y2s и usb. Но согласитесь, их реализация ниеае не входит в понятие "тревиальная".
Длдя смеха, попробуйте их на ПЛИСе реализовать. А потом JTAG/SPI/UART. И сравните. Зажали гады 1(один!!!) провод - и все хором ломают себе мозг. И вообще - зачем тогда оставели тактирование? Могли бы и железно прошить частоту.
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 19.01.2012, 02:10 | |
|
Вы наверное не правильно поняли... Я ничего не имею против SWD и тем более не собираюсь его реализовывать, как и USB и т.п. на ПЛИС-е.
Cильно ли плохо иметь SWD-разъем на плате STM32, но не иметь JTAG-разъема? Смотрел недавно описание простой платы с STM32 - SWD-разъем есть, а JTAG-разъема - нет. Но зато всего 4 пина у SWD против обычных 10-14 пинов у JTAG.
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 19.01.2012, 05:05 | |
|
Можно я продолжу?
XML файлы CMSIS-SVD для описания периферии - это новый шаг в абстрагировании и инкапсуляции слоя HAL в очень удобном виде (удобном и для проекта, и для программиста). Сам по себе xml - это уже программирование от данных, точнее от структур данных. Файл CMSIS-SVD поставляется самим производителем чипа и он соответствует текущему стандарту описания слоя HAL. Но, xml-формат также очень удобен и для расширения стандарта описания периферии новыми видами структур данных любой сложности и вообще, введения новых абстракций в уровень HAL - ввели новые тэги и их значения, задокументировали и описали все это в стандарте, и вперед. Если, кроме того, структуры данных и вызовы API RTOS и других библиотек (для DSP Lib Sortixa-M4 - это уже сделано в CMSIS 2.0) будут стандартизированы в CMSIS для всех едино - вскоре появится для ARM-Sortix новый тип тулчейнов и сред разработки ПО. Все идет от SVD-файла описания чипа и API RTOS и прочих библиотек. Как? Прагриннист в специальном визарде за 10-15 минут накидывает то, что ему нужно для работы из периферии чипа, затем тип RTOS, ее нужный функционал и взаимодействие с выбранной периферией, количественные хар-ки RTOS (по размещению в памяти и тактированию). Как бы выбирает нужное ему подмножество периферии, структур данных и системных вызовов API - все это выбирается из стандартизированного множества на основании нужного ему и имеющегося/поддерживаемого в чипе. Все это собирается в xml-файле проекта. И уже из него генерятся .h и .c файлы проекта, со скомпоннованными в них описаниями периферии и системных вызовов API RTOS и дополнительных библиотек. Дальше можно уже программировать сам прикладной уровень самой задачи. Для крутых - на Си, но можно и в упрощенной обертке типа Wirish-а для Ардуино или чего-то тоже Си-подобного по синтаксису но легко-читаемого, похожего на C#, Java и т.п. Так же будет создана и обертка для удобоваримых имен (в .h и .c файлах) на этапе конфигурирования в визарде, что бы не писать, например такое LPC_GPIO0->DATA |= 1<<7 и т.п., а допустим попроще: Board_Pin[7] = 1. Ну а названия API вызовов можно и оставить, как есть. Скорость работы кода, что в упрощенной обертке, что на Си - одинакова, поскольку это одно и тоже в итоге. Кроме того, за 15 минут проект можно перекинуть с одного ARM Sortix на другой, например с LPC на STM32. Вы еще красноглазите в многометровые портянки .h и .с файлов, выискивая точное название n-го бита х-го регистра и переполняете башку кучей ненужной инфы (точными названиями на Си чего-то в переферии) - значит ARM с CMSIS идет к вам! P/S В свое время и asm так же выпал в осадок - просто текст программы на asm-е стал всего лишь промежуточным этапом в процессе компиляции и сборки. Си или Паскаль -> asm -> объектный модуль, щас уже подошла и очередь Си, хотя, как и asm - он никуда не исчезает, а остается в цепочке. Держитесь - через 5-6 лет эмбеддеров будет столько же, как и сисадминов щас :)_
0
|
|
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
||
| 19.01.2012, 10:49 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 19.01.2012, 13:00 | |
|
Граничное сканирование - прикольная весчь. Ди, ты когда нить пользовал ?
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
| 19.01.2012, 13:01 | |
|
А что это такое? Звучит круто!
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 28
|
|
| 19.01.2012, 13:04 | |
|
ну насколько я правильно догнал. это доступ через JTAG к любой ноге микры. прозвонка платы программными средствами.
0
|
|
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
| 19.01.2012, 13:32 | |
|
Ааа, читал про такое про такое. Для всяких BGA актуально.
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 19.01.2012, 14:24 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 19.01.2012, 14:30 | |
|
Ну и так далее - уже все ясно наверное и так. См. Kenneth P. Parker. "The boundary-scan homdbook" - в сети навалом pdf. Только нахрен надо - зачем это нам? Воткнул JTAG или SWD и вперед - сделал что надо. Я почему то думал, что и SWD и JTAG на кристалле одну аппаратуру юзают и оба используют этот самый The boundary-scan control - в принципе это единственный из простых и дешевых способ достучатся до периферии. В реальном устр-ве может быть змейка шифт-регистра и внутри по кристаллу пару-тройку петель делает - через только ноги не до всего достучишся, хотя вряд ли наверное... Я в житаге и не компрехе ваще и не собираюсь даже знать, как он работает - только время и нейроны зря тратить, но зачем?
0
|
|
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
| 19.01.2012, 14:56 | |
|
для наколеночного производства граничное сканирование нафиг не нужно. Проще и быстрей так все прозвонить. А вот если делаешь на конвеере 100500 штук в день, то их надо как то автоматом проверять. Тут жтаг и нужен.
0
|
|
|
0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 392
|
|
| 19.01.2012, 15:03 | |
|
Дык я об этом и говорю... заюзал готовый отладчик и можно и не знать что там внутри и как он делает - а то моск лопнет, если все знать :) В штатах наверное человек сто дома построили себе 2-х этажные и половина их уже наверное умерло, кто докторские диссеры защищал на эту тему и кайлил в силиконовой долине...
0
|
|
| 19.01.2012, 15:03 | |
|
Помогаю со студенческими работами здесь
19
ARM cortex A9 и L2 Программист С++ (Cortex/ARM) Обсуждение ARM и Cortex Микроконтроллеры с ядром ARM Cortex-M4 Вопрос по OMAP3530(ARM Cortex - A8) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. На мобильном - сканируйте QR-код. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|