Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » STM32: Вопросы » Отладка и загрузка прошивки из памяти


Отладка и загрузка прошивки из памяти

Сообщений 1 страница 5 из 5

1

Пользуюсь Keil v 5.0 и ST-LINK v2, проц stm32f103c8t6
Изучаю и отладку постоянно прошивая flash, увидел что можно заливать программу в оперативную память. Правильно что выставляю BOOT0=0 BOOT1=1 заливаю с кейл ?  Но заливается только во флэш.

Отредактировано CERGEI (2017-03-29 12:01:13)

2

Что, никто до сих пор не ответил?
Вопрос про Keil по сути.
Я не спец по Keil, так что отвечаю чисто из общих соображений )
Мало выставить boot0 и boot1 (кстати почему в 0 и 1? для sram же вроде 1 и 1)
Надо чтоб компилятор скомпоновал программу начиная с адреса 0x20000000, а не 0x8000000, и чтоб дебаггер грузил её по этому адресу.
Какими птичками-галочками этого добиться в Keil я не знаю )
Ну и кроме того, ещё в самой программе надо переназначить область векторов прерываний на адрес 0x20000000
Для этого в system_stm32f1xx.c есть такой код

Код:
/*!< Uncomment the following line if you need to relocate your vector Table in
     Internal SRAM. */ 
/* #define VECT_TAB_SRAM */

который дальше там вот так используется

Код:
#ifdef VECT_TAB_SRAM
  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif

3

у stm32f103c8t6 оперативки 20кб и что-то мне кажется это не самая лучшая идея.

Кстати я тоже попробовал, но что-то не получилось :) (наверно в линкере дело .  )

4

Что-то как то замудренно, думаю лучше проц купить новый и заменить. 10000 циклов записи это прилично :)
Вот кое что нашел Ссылка,но думаю пока сам могу запутаться в этом.

5

я в китае купил сразу 8 плат с таким процом. одна дома на макетке, одна на работе на макетке, еще несколько впаяны в разные проекты. Еще на одной убил проц и поставил туда такой же , но на 128кб.
В общем на тему циклов перезаписи думаю париться не нужно, потому что  1) достичь их сложно 2)на то платы и делались, чтобы тренироваться  3) на реальной почти готовый проект можно новую плату поставить.

Вообще я трудно себе представляю зачем может понадобиться работа из SRAM. Особенно если учесть, что она обнулится при выключении питания. Может кто-нибудь просветит зачем этот функционал ? Единственное что приходит на ум и что я реально встречал это когда заливается в ОЗУ некий код который после заливки работает как бутлоодер и помогает заливать основную прошивку. Но зачем так сделано я так и не понял.  Тем более у STM32 есть в штатном бутлоодере работа по uart и по swd/jtag.


Вы здесь » Микроконтроллеры » STM32: Вопросы » Отладка и загрузка прошивки из памяти