Micrium OS - кто-нить пользует? Есть вопросы.

Кто любит RISC в жизни, заходим, не стесняемся.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Прикупил EZR32HG320F64R61G. Но из-за самоизоляции не могу забрать из ЧиДа.
Поэтому тренируюсь на Pearl Gecko Starter Kit купленной задешево по случаю.

Поморгать светодиодами и порисовать на LCD экране уже не интересно (LCD экран на ките чертовски хорош!).
Поэтому решил пальнуть из тяжёлой артиллерии - RTOS.
На данный момент имею Simplicity IDE с установленным Gecko SDK 5.9.4.0, Micrium OS Kernel 2.7.4 и GNU ARM 7.2.1.
Вообще не понял, как добыть рабочий пример с Micrium, т.к. IDE предлагает только документацию и ссылки на их doc`s (документация опечалила - нет и половины. А что есть, то расходится с комментариями в сырцах). Поэтому иду по этому гайду https://www.silabs.com/community/blog.e ... iumos-xSAy
Он вроде и не старый, но уже устарел: IDLE задача из kernel выпилена (если нужна IDLE задача, то комментарии в файлах говорят о создании пустой задачи с низшим приоритетом), TICK задача заменена на sleeptimer.
Все гайды начинаются так: откройте пример такой-то... Но мне нечего открывать, поэтому пошел с нуля. Новый MCU Project, далее выбираю копировать сырцы и дать линки на SDK (хотя все гайды говорят про необходимость скопировать Micrium OS Kernel в папку с проектом). По факту в папку с проектом "упали" пустые папки, куда в IDE залинкованы *.c файлы. В свойствах компилятора прописал линки к заголовочным файлам.

ВОПРОС 1. При пересборке проекта компилируются абсолютно все файлы. Процесс затягивается на 30-40 секунд. Почему так?
ВОПРОС 2. У меня две задачи. Одна мигает одним светодиодом, другая другим. Задача выглядит так:

Код: Выделить всё

void LED0Tgl_TaskCode (void *p_arg)
{
	RTOS_ERR	err;

	const OS_TICK	delay = 5000;

	Mem_SegCreate(		"Msg Pool Mem",
						&MsgPoolMemSeg,
						(CPU_ADDR)&MsgPoolMem,
						MSG_POOL_SIZE,
						LIB_MEM_PADDING_ALIGN_NONE,
						&err);

	APP_RTOS_ASSERT_DBG((RTOS_ERR_CODE_GET(err) == RTOS_ERR_NONE), 1);

	Common_Init(&err);
	APP_RTOS_ASSERT_CRITICAL(err.Code == RTOS_ERR_NONE, ;);

	while (DEF_ON)
	{
		GPIO_PinOutToggle(gpioPortF, LED0_PIN);

		OSTimeDly(delay, OS_OPT_TIME_DLY, &err);

		if (RTOS_ERR_CODE_GET(err) != RTOS_ERR_NONE)
		{
			///
		}
	}
}
В результате OSTimeDly формирует ошибку
RTOS_ERR_WOULD_OVF [30]
и во вторую задачу вообще не входит.
Где можно почитать про ошибки?
ВОПРОС 3. Где задаётся системный тик? У меня это так (по гайду):

Код: Выделить всё

#if (OS_CFG_TMR_EN == DEF_ENABLED)
static CPU_STK TimerTaskStk[LAB_OS_TMR_TASK_STK_SIZE];
#define TIMER_TASK_CFG .TmrTaskCfg =		\
{											\
	.StkBasePtr	= &TimerTaskStk[0],			\
	.StkSize	= LAB_OS_TMR_TASK_STK_SIZE,	\
	.Prio		= LAB_OS_TMR_TASK_PRIO,		\
	.RateHz		= LAB_OS_TMR_TASK_RATE_HZ	\
},
#else
#define TIMER_TASK_CFG
#endif
Что такое RateHz? У меня стоит значение 10u. Тик 100 мс?
Возможно, я не вижу мигания из-за ошибки выше?

ВОПРОС 4. Надо ли писать в main():

Код: Выделить всё

	CPU_Init();

	CMU_ClockEnable(cmuClock_GPIO, true);

Пытался изучить TI RTOS, но что-то не пошло. Здесь вроде по документации просто, но вот само документирование...
Реклама
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Есть в файле sl_sleeptimer.c такая строчка

Код: Выделить всё

timer_frequency = sleeptimer_hal_get_timer_frequency();
и она возвращает 0.
Если нырнуть в недра функции, то там есть следующее:

Код: Выделить всё

CMU_ClockFreqGet(cmuClock_RTCC)
и оно тоже возвращает 0.
Блин блинский, как заставить тикать RTCC sleep timer?
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

Беда многих фирм в том, что документация отстаёт от версий ПО, что делает многие туториалы недействительными. В версии SDK начиная с 2.7.0 сделано много изменений, в частности в последней версии RTOS. У меня здесь есть статья про эту RTOS под предыдущей версией SDK 2.6.x, где всё было сделано по классике и без больших изменений на протяжении долгих лет. Краткий ответ на Ваши вопросы - установите эту версию SDK, тогда все доки будут релевантыми, да и у меня в статье многое разжёвано. Так будет быстрее войти в курс дела, потом сами на свои дополнительные вопросы ответить сможете. На TI RTOS я забил по этой-же причине - очень сильное отставание доков от последней версии ПО. Но это было давно, с тех пор я к ней не возвращался, сейчас ситуация может быть и лучше, не знаю. Скорость компилирования в Eclipse зависит от шустрости компа, у меня это занимает секунд 10-20. RateHz - частота в герцах.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

[uquote="Ser60",url="/forum/viewtopic.php?p=3834428#p3834428"]У меня здесь есть статья про эту RTOS под предыдущей версией SDK 2.6.x, где всё было сделано по классике и без больших изменений на протяжении долгих лет.[/uquote]
Да, читал эту статью. Я думал, что я один такой русскоязычный. Странно, микриум стоит на втором месте после FreeRTOS, а документации толковой кот наплакал.


[uquote="Ser60",url="/forum/viewtopic.php?p=3834428#p3834428"]Краткий ответ на Ваши вопросы - установите эту версию SDK, тогда все доки будут релевантыми, да и у меня в статье многое разжёвано.[/uquote]
Я добавил в студию плату Thunderboard Sense 2 (SLTB004A). Но студия просит сменить версию SDK, чтобы увидеть примеры.
Тогда добавил плату EFM32 Giant Gecko Starter Kit (EFM32GG-STK3700). И о, чудо! Стали доступны примеры. Утянул к себе STK3700_micriumos_blink. Оно без проблем собралось. Работу проверить не могу - у меня Pearl Gecko. Поэтому в свойствах проекта сменил плату на свою. Но не тут-то было - 20 ошибок как с куста. Битый час добавлял недостающие пути к файлам и папкам. В результате проект собрался, но вернулось на круги своя - ловится эта ошибка:

Код: Выделить всё

  OS_ASSERT_DBG_ERR_SET((OSCfg_TickRate_Hz <= sl_sleeptimer_get_timer_frequency()), *p_err, RTOS_ERR_INVALID_CFG, ;)
В проекте с GiantGecko используется таймер RTC, а у меня RTCC. Могу и ошибаться, т.к. даташит на GG не смотрел))

За микриум ухватился, т.к. там есть библиотека с MQTT и USB. Но USB хочу портануть LUFA.

Добавлено after 7 minutes 46 seconds:
[uquote="Ser60",url="/forum/viewtopic.php?p=3834428#p3834428"]На TI RTOS я забил по этой-же причине - очень сильное отставание доков от последней версии ПО. Но это было давно, с тех пор я к ней не возвращался, сейчас ситуация может быть и лучше, не знаю.[/uquote]
Мне сайт TI нравится больше - любой пример можно скачать вообще без танцев с бубном. По-крайней мере, проблем с изучением MSP430FR не возникло. Если что не понятно из документации, есть примеры на все случаи жизни.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

У меня есть такая плата для Pearl Gecko, но я так и не понял чего хотите добиться. Ранее я работал с RTOS на этой плате. Для запуска RTCC нужно не только разрешить для него тактирование, но и заполнить структуру инициализации, если делаете ето с помощью Emlib. Или можно непосредственно с регистрами работать. Могу прислать тестовый проект для этого. Однако, с RTOS я сижу на SDK 2.6.4. Версия 2.7.х ещё сыровата, важные для меня "детские болезни" в Bluetooth под RTOS устранены только в последней её ревизии 2.7.4, и кто знает что там ещё осталось после major апгрейда при переходе с 2.6 на 2.7.
Реклама
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Раскурил я эту шнягу силиконовскую)))
Я обходил стороной функции, которые начинаются на BSP_, считая их ардуино стайл программированием. Мне казалось, что внутри них настраивается только периферия выбранного платы-кита, я же хочу взять голый МК и внедрить в сой USB свисток. Поэтому всякие BSP_LedsInit() мне никак не подходят - на моей плате всё по-другому, нежели на ките. Но оказывается, что есть очень полезная функция BSP_SystemInit(), которая осуществляет минимально-начальную инициализацию камня. И там же есть мой RTC:

Код: Выделить всё

  sleeptimer_osc = cmuOsc_LFRCO;
  sleeptimer_select = cmuSelect_LFRCO;
#else
  #error "The definition of BSP_LF_CLK_SEL in bsp_cfg.h is not handled."
#endif

#if ((SL_SLEEPTIMER_PERIPHERAL == SL_SLEEPTIMER_PERIPHERAL_RTCC) || (SL_SLEEPTIMER_PERIPHERAL == SL_SLEEPTIMER_PERIPHERAL_RTC))
#if (SL_SLEEPTIMER_PERIPHERAL == SL_SLEEPTIMER_PERIPHERAL_RTCC)
  #if defined(_SILICON_LABS_32B_SERIES_2)
    sleeptimer_clock = cmuClock_RTCC;
  #else
    sleeptimer_clock = cmuClock_LFE;
  #endif
#elif (SL_SLEEPTIMER_PERIPHERAL == SL_SLEEPTIMER_PERIPHERAL_RTC)
  sleeptimer_clock = cmuClock_LFA;
#endif

  CMU_ClockSelectSet(sleeptimer_clock, sleeptimer_select);
#elif (SL_SLEEPTIMER_PERIPHERAL != SL_SLEEPTIMER_PERIPHERAL_PRORTC)
  #error "Invalid peripheral selected for SL_SLEEPTIMER in sl_sleeptimer_config.h"
#endif

  CMU_OscillatorEnable(sleeptimer_osc, true, false);
Добавил в проект на 3700STK, который переведен на PearlGecko и он замигал светодиодом)) Фуууух.

Т.к. это мой первый ARM, я понял, что без библиотек от производителя вообще никак. Я думал, что у MSP430 замороченная система тактирования, а у Cortex M4 это вообще головоломка. Но убило не это, а инициализация DCDC преобразователя - это какие-то вилы))) Это неделю надо безвылазно разбираться с регистрами, чтобы прикинуть что к чему)))

Добавлено after 4 minutes 28 seconds:
[uquote="Ser60",url="/forum/viewtopic.php?p=3834897#p3834897"]но я так и не понял чего хотите добиться.[/uquote]
светодиодиками поморгать из операционной системы. Ну это для начала.
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=3834936#p3834936"]Т.к. это мой первый ARM, я понял,
что без библиотек от производителя вообще никак.[/uquote]Не могу с этим согласиться. Да и сами Вы после второго-третьего проекта поймёте, что это не так. Мои студенты программируют EFM32 с нуля в моём курсе по ассемблеру без всяких библиотек, лишь на основе регистров, правда, без RTOS.
Я думал, что у MSP430 замороченная система тактирования, а у Cortex M4 это вообще головоломка.
Также уверен, что скоро измените своё мнение по этому поводу. Тактирование у EFM32 совершенно прозрачное по сравнению с другими моделями АРМ. Может оно выглядит сложным только сразу после 8- и 16-битных МК.
Но убило не это, а инициализация DCDC преобразователя - это какие-то вилы))) Это неделю надо безвылазно разбираться с регистрами, чтобы прикинуть что к чему)))
Take it easy. После недели работы с ARM будете конфигурировать любую периферию на уровне регистров в течении получаса с перекурами. А пока с библиотекой периферии вообще проблем не вижу - заполнил структуру (и то, большая часть её уже заполнена дефолтно) и передал её в API функцию.
светодиодиками поморгать из операционной системы. Ну это для начала.
Как я понял, Вам это уже удалось. С USB и MQTT я под RTOS не работал, а вот для Bluetooth - пару недель назад представил сюда статью, скоро опубликуют, надеюсь.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Как я понял, Вам это уже удалось.
Я почему-то решил, что ядро ОС само себе готовит тактирование. Оказывается, что это не так. Теперь буду разбираться, как на IDLE (не знаю, как это по-русски) задаче заставить ядро уйти в EM2.
а вот для Bluetooth - пару недель назад представил сюда статью, скоро опубликуют, надеюсь.
я тоже хочу попробовать этот орешек. Печаль в том, что в Китае можно купить готовые платы, но это будет TI. У TI блютус внедрен в их RTOS. Возможно, что их RTOS не такая уж и сложная, но у меня пока нет железа. Тренироваться не на чем. А без практики чтение мануалов бесполезно - не откладывается.
Делать свою плату на МК от SiLabs - я не сделаю её в таких габаритах, которые предлагают китайцы. А если МК на шарах, то мне его вообще будет не распаять(
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

Про габариты китайцев не понял маленькая для Вас их плата или большая и какой чип имеете в виду. В любом случае для Bluetooth следует просто купить Силлабовский Bluetooth модуль, который паяется легко. Размер его 13x15mm. У них eщё есть новый Bluetooth MK семейства BG22 в корпусе QFN32.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Габариты имею ввиду что-то в пределах 15*20мм. У китайцев такой модуль стоит в районе 6$. Мне от модуля нужен SPI интерфейс, пара-тройка GPIO и разведённая радиочасть.
Мне тут ещё перепала arduino nano ble 33 на nRF52840. У китайцев тоже такое есть, но nRF пока не изучал. Стек arduino не интересен в принципе. Платка лежит без дела пока.

Тут кстати ещё вопрос про отчет компилятора. Вроде в симплисити студии GNU компилятор, а выдаёт такую простыню
section size addr
.text 32740 0
.ARM.exidx 8 32740
.data 284 536870912
.bss 15228 536871196
.heap 3072 536886424
.stack_dummy 1024 536886424
.ARM.attributes 46 0
.comment 126 0
.debug_info 161910 0
.debug_abbrev 14073 0
.debug_loc 32912 0
.debug_aranges 3984 0
.debug_ranges 3504 0
.debug_line 50293 0
.debug_str 34601 0
.debug_frame 16040 0
.stabstr 223 0
Total 370068
Где бы почитать что есть что? IAR формирует map файл и в нём всё расписано. Здесь ж не понимаю, что вошло в прошивку, а что нет( Сколько ОЗУ занято...

Почему на каждый чих пересобирается проект тоже стало понятно - бесчисленное количество команд препроцессора в практически во всех файлах.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=3835167#p3835167"]Где бы почитать что есть что?[/uquote]См здесь.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Блин, фантастика! Мигают два светодиода, когда операционной системе делать нечего, она уходит в EM2. Потребление при этом 1-2мкА. Правда расплата за это куча флеша, куча оперативы)))

А для запуска uc/Probe необходим OS_TRACE_INIT?

Дебаггер с energy profiler несовместим?
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

Мигание светодиодов с микроамперным потреблением можно добиться и без платы за флеш для RTOS. Однако, как, например, показано в 3-й статье про Bluetooth, добавка RTOS к Bluetooth приложению практически не оказывает ощутимого влияния на среднее токопотребление, однако, уменьшает головную боль состыковки временных требований обработки событий стека и приложения.

OS_TRACE_INIT необходим только для Segger System View.
В студии можно запускать загрузочный адаптер только для отладки кода или измерения потребления, но не оба сразу.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Мигание светодиодов с микроамперным потреблением можно добиться и без платы за флеш для RTOS.
Ну понятно)) Это ж начало))
OS_TRACE_INIT необходим только для Segger System View.
Блин, а почему у меня в uc/Probe одни нули? Зеленая стрелка стоит напротив IDLE задачи и всё. Не может же быть, что задача использует 0 слов стека?
В студии можно запускать загрузочный адаптер только для отладки кода или измерения потребления, но не оба сразу.
А нет ощущения, что этот амперметр подвирает? На плате MSP430 значения тока стоят стабильно (градация 100нА). Тут же шумно как-то и проскакивают значения 0.00 mA
уменьшает головную боль состыковки временных требований обработки событий стека и приложения.
Читаю плотно документацию - кирпичики складываются. Плохо, что свой МК забрать не могу. Правда и плату под него ещё китайцам не отправлял) Хочется уже USB посчупать с радиотрактом) У них пакет вроде RAIL называется. Не знаю, как он для субгигарца - не разбирался ещё.
В любом случае для Bluetooth следует просто купить Силлабовский Bluetooth модуль
А как он называется? У TI тоже есть такой модуль, но в маузере он стоит абсолютно не приличных денег.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

Блин, а почему у меня в uc/Probe одни нули?
Я не знаю что Вы делаете в программе, но для RTOS нужно разрешить сбор статистики в os_cfg.h, см. лучше статью. Кроме того, возможно что с SDK 2.7.x что-то ещё недоделано. Поэтому и рекомендовал прошлую стабильную и хорошо отлаженную версию 2.6.4, где всё работает как доктор прописал.
А нет ощущения, что этот амперметр подвирает?
На силлабовской плате дефолтно работает DC-DC конвертер. Его можно отключить, будет менее шумно, см. графики в первой часи статьи про Bluetooth. Кроме того, при работе RTOS помимо мигания светиком могут работать ещё какие-то потоки, например, сбор статистики, что тоже добавит шума. Если значения тока стоят стабильно, у меня-бы это вызывало больше подозрений.
У них пакет вроде RAIL называется.
RAIL у силлабов - это Radio Abstraction Interface Layer. Фактически планировщик для работы радио, типа своей маленькой RTOS. Сейчас RAIL работает в купе с Micrium.
Не знаю, как он для субгигарца - не разбирался ещё.
Для субггц имеется протокол Z-wave, у Силлабов он, вроде, стабильный после 20 лет разработки. Недавно был вебинар про него, если интересно могу поискать линк на его видео-запись.
А как он называется?
У силлабов много ранзых Bluetooth модулей, я рекомендую
https://www.mouser.com/Search/Refine?Keyword=bgm13p
См. также эту ветку насчёт Bluetooth модулей и пр.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Я не знаю что Вы делаете в программе, но для RTOS нужно разрешить сбор статистики в os_cfg.h, см. лучше статью. Кроме того, возможно что с SDK 2.7.x что-то ещё недоделано. Поэтому и рекомендовал прошлую стабильную и хорошо отлаженную версию 2.6.4, где всё работает как доктор прописал.
Я удалил свою IDLE задачу с приоритетом 2 (задачи мигания светодиодом имеют приоритет 1), а чтобы уходить в сон добавил hook

Код: Выделить всё

void OSIdleEnterHook (void)
{
	EMU_EnterEM2(true);
}

И в uc/Probe всё заработало. Жалко, что всего лишь одну минуту( Я так понимаю, в release конфигурации вся эта информация в прошивке будет недоступна (пока не понимаю механизм передачи данных из МК в uc/Probe)?
На силлабовской плате дефолтно работает DC-DC конвертер. Его можно отключить, будет менее шумно, см. графики в первой часи статьи про Bluetooth. Кроме того, при работе RTOS помимо мигания светиком могут работать ещё какие-то потоки, например, сбор статистики, что тоже добавит шума. Если значения тока стоят стабильно, у меня-бы это вызывало больше подозрений.
У меня шум во сне EM2 аж от 1 нА(!) и до единиц мкА (чему я верю).
Сейчас RAIL работает в купе с Micrium.
Но вот в доках микриум я его не вижу. Он идёт отдельной "статьёй". В принципе, всё равно разбираться с их API на трансиверы, поэтому можно и на низком уровне запрогать).
Для субггц имеется протокол Z-wave, у Силлабов он, вроде, стабильный после 20 лет разработки. Недавно был вебинар про него, если интересно могу поискать линк на его видео-запись.
Z-Wave же какая-то там сигма разрабатывала? У меня на распи стоит старый Z-Wave трансивер (с европейской частотой)), стоит их ПО, но датчиков нет. Ну и лежат у меня субгигагерцовые передатчики и купил ещё в ЧиДе полноценные трансиверы.
У силлабов много ранзых Bluetooth модулей, я рекомендую
https://www.mouser.com/Search/Refine?Keyword=bgm13p
См. также эту ветку насчёт Bluetooth модулей и пр.
Положу в избранное. Потом поизучаю.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

А нет ли где примера работы UART с micrium? В доках только SPI. Я вот накидал инициализацию

Код: Выделить всё

void InitUART0 (void)
{
	RTOS_ERR	err;

	USART_InitAsync_TypeDef usart_initasync = USART_INITASYNC_DEFAULT;

	GPIO_PinModeSet(gpioPortA, 1, gpioModeInput, 0);
	GPIO_PinModeSet(gpioPortA, 0, gpioModePushPull, 1);

	//GPIO_PinModeSet(gpioPortA, 5, gpioModePushPull, 1); <-from VCOM

	CMU_ClockEnable(cmuClock_USART0, true);

	usart_initasync.enable = usartDisable;
	USART_InitAsync(USART0, &usart_initasync);

	USART0->ROUTELOC0 = USART_ROUTELOC0_RXLOC_LOC0 | USART_ROUTELOC0_TXLOC_LOC0;
	USART0->ROUTEPEN |= USART_ROUTEPEN_TXPEN | USART_ROUTEPEN_RXPEN;

	USART_IntEnable(USART0, USART_IEN_RXDATAV);
	USART_IntEnable(USART0, USART_IEN_TXC);

	NVIC_EnableIRQ(USART0_RX_IRQn);
	NVIC_EnableIRQ(USART0_TX_IRQn);

	USART_Enable(USART0, usartEnable);

	IO_Init(&err);
	APP_RTOS_ASSERT_DBG((RTOS_ERR_CODE_GET(err) == RTOS_ERR_NONE), 1);

	Serial_Init(&err);
	APP_RTOS_ASSERT_DBG((RTOS_ERR_CODE_GET(err) == RTOS_ERR_NONE), 1);

}
И чего-то не понимаю - ядру надо знать, что я работаю с UART или нет? Через него только прерывания идут, а остальное его не интересует?

Добавлено after 1 minute 7 seconds:
Community с SiLabs вялое какое-то. Видимо из-за моего английского))
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение Ser60 »

[uquote="parovoZZ",url="/forum/viewtopic.php?p=3837846#p3837846"]ядру надо знать, что я работаю с UART или нет?[/uquote]Не обязательно. Но зависит от того, что хотите делать в прерывании. См. KA и NKA типы ISR. Может следующий документ поможет: Migration Guide: from FreeRTOS to Micrium OS (секция 10).
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

Migration Guide: from FreeRTOS to Micrium OS (секция 10).
Листал его раз двадцать)) И только сейчас заметил, что там есть пример с UART )
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: Micrium OS - кто-нить пользует? Есть вопросы.

Сообщение parovoZZ »

См. KA и NKA типы ISR.
Их тоже вырезали. В мануале 5.05 они есть, в 5.08 уже нету.
Ответить

Вернуться в «ARM»