| Форум РадиоКот https://radiokot.ru/forum/ | |
| BGM240 стартануть... https://radiokot.ru/forum/viewtopic.php?f=59&t=190486 | Страница 1 из 1 | 
| Автор: | uldemir [ Пн окт 23, 2023 19:17:29 ] | 
| Заголовок сообщения: | BGM240 стартануть... | 
| Ппомогите. Не могу запустить сей модуль. Модуль пустой из коробки. Загрузил свою программу, загрузил bootloader:bootloader-storage-internal-single-1536k но управление моей программе похоже, что не передаётся. Если пустить дебаг оно где-то шарится и ничего не показывает. Если нажать suspend, появляется сообщение: Break at address "0x8000604" with no debug information available, or outside of program code. Что еще этому чуду не хватает? Даже пытался bt_soc_blinky поставить - эффект нулевой. | |
| Автор: | Ser60 [ Пн окт 23, 2023 22:32:50 ] | 
| Заголовок сообщения: | Re: BGM240 стартануть... | 
| С таким бутлоадером следует из Bluetooth профиля убрать OTA сервис (если Bluetooth задействован), который в тестовом приложении bluetooth_soc_empty присутствует по умолчанию. Делайте в Software Components поиск по ota и удалите эту компоненту. Потом следует заново перезалить приложение. Ещё неясно какая у Вас версия Secure FW в чипе, и совместима-ли она с используемой приложением версией SDK. Если это не поможет, сообщите подробности что и как делаете, какие версии и пр. У меня всё работает на УРА. | |
| Автор: | uldemir [ Вс сен 15, 2024 15:26:36 ] | 
| Заголовок сообщения: | Re: BGM240 стартануть... Solved | 
| Новая проблема. "Проапгрейдился", называется. Теперь проект не запускается. Проблема решена - рецепт в конце. Компилятор GNU ARM 12.2.1 SDK Simplicity SDK Suite v2024.6.1 Сборка идёт без ошибок. Но при старте "повисает". Прошелся дебагером: (стрелка показывает на какой подпрограмме ухожу вглубь) Код: main() ->  sl_system_init(); --> void sl_system_init(void) { sl_platform_init(); sl_driver_init(); sl_service_init(); sl_stack_init(); --> sl_internal_app_init(); } void sl_stack_init(void) { sl_fem_util_init(); sl_rail_util_pa_init(); sl_rail_util_power_manager_init(); sl_rail_util_pti_init(); sl_bt_init(); --> } А там после err = sli_bt_system_start_bluetooth(); оно вываливается в Код:           RAILCb_AssertFailed: 080264b4: ldr r3, [pc, #8] ; (0x80264c0 <RAILCb_AssertFailed+12>) 080264b6: str r1, [r3, #0] 080264b8: ldr r3, [pc, #8] ; (0x80264c4 <RAILCb_AssertFailed+16>) 080264ba: str r0, [r3, #0] 080264bc: b.n 0x80264bc <RAILCb_AssertFailed+8> При этом пытался делать по-новой "Bluetooth - SoC Empty", копировать файлы, компилировать - и всё время один и тот же результат. Может с этим новым SDK надо как-то по-новому действовать? В гугле нашел, что для Simplicity SDK, в отличии от Gecko SDK надо конфигурировать Clock Manager - указал там внешний HFXO - 39MHz. Не помогло... А!!! Еше надо Default Clock Source Selection for HF clock branches указать HFXO - теперь заработало! | |
| Автор: | uldemir [ Пт окт 03, 2025 07:15:56 ] | 
| Заголовок сообщения: | Re: BGM240 стартануть... | 
| Новая засада. Захотел запустить часики реального времени. Выбрал BURTC. Зашел в софтверные компоненты и поставил галочку у Platform->Peripheral->EMLIB->BURTC. В старте написал: Код: BURTC_Init_TypeDef burtcInit =  BURTC_INIT_DEFAULT;Но оно падает в HardFault. ... BURTC_Init(&burtcInit); Прошелся отладчиком, оно умирает в этой функции: Код: void BURTC_Init(const BURTC_Init_TypeDef *burtcInit)На строчке   if (BURTC->EN != 0U) , т.е. первая же попытка прочитать. uint32_t presc; presc = divToLog2(burtcInit->clkDiv); if (BURTC->EN != 0U) { BURTC_SyncWait(); } BURTC->EN_CLR = BURTC_EN_EN; ... В заголовке написано, что перед этой функцией надо сбросить бит в RMU Код:  *   Before initialization, BURTC module must first be enabled by clearing the * reset bit in the RMU, i.e., * @verbatim * RMU_ResetControl(rmuResetBU, rmuResetModeClear); * @endverbatim Но эти магические слова недоступны (#ifdef не активизирует строки про rmuResetBU). Код: /** RMU controlled peripheral reset control and reset source control. */ typedef enum { #if defined(RMU_CTRL_BURSTEN) rmuResetBU = _RMU_CTRL_BURSTEN_MASK, /**< Reset control over Backup Power domain select. */ #endif Что я упускаю? | |
| Автор: | jcxz [ Пт окт 03, 2025 18:59:55 ] | 
| Заголовок сообщения: | Re: BGM240 стартануть... | 
| Прошелся отладчиком, оно умирает в этой функции:Вообще-то это место лучше прошагать по окну дизасма. Чтобы точно знать на какой команде виснет. Если виснет именно на команде чтения из регистра BURTC, то это более всего похоже на то, что не включено тактирование периферийного блока (к которому относится данный регистр). Я с EFR-ами не работал, но в других МК такое может происходить обычно при отключенном тактировании соответствующей периферии. На строчке if (BURTC->EN != 0U) , т.е. первая же попытка прочитать. Что я упускаю?Скачать "Reference Manual"; найти в нём параграф про тактирование регистров IO периферии (Clocking какой-нить); найти что там написано про BURTC. Вот скачал "EFR32xG24 Wireless SoC Reference Manual" и вижу (стр.173): "CMU_CLKEN0 - Clock Enable Register 0". Биты 28 и 29 - BURAM, BURTC. В каком они положении в точке выполнения того кода? | |
| Автор: | Ser60 [ Сб окт 04, 2025 19:21:52 ] | 
| Заголовок сообщения: | Re: BGM240 стартануть... | 
| Совершенно верно, скорее всего не разрешено тактирование для BURTC. Вот пример мигания светодиодом с периодом 1 сек для демо-платы Ezurio LYRA 24p и simplicity_sdk_2025.6.1: Код: #include "em_burtc.h" #include "em_cmu.h" #include "em_gpio.h" void app_init(void) { GPIO_PinModeSet(gpioPortA, 8, gpioModePushPull, 0); // configure LED pin CMU_ClockSelectSet(cmuClock_BURTC, cmuSelect_LFXO); // select BURTC clock CMU_ClockEnable(cmuClock_BURTC, true); // get access to BURTC registers BURTC_Init_TypeDef init = BURTC_INIT_DEFAULT; init.compare0Top = true; BURTC->COMP = 32768; // set BURTC perior BURTC_Init(&init); BURTC_IntEnable(BURTC_IEN_COMP); // set up BURTC interrupt NVIC_EnableIRQ(BURTC_IRQn); } void app_process_action(void) { } void BURTC_IRQHandler(void) { BURTC_IntClear(BURTC_IF_COMP); // clear BURTC interrupt GPIO_PinOutToggle(gpioPortA, 8); // toggle LED } | |
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа | 
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ | |





