|
IAR (STM32+Ext SRAM) |
|
|
|
May 3 2012, 07:16
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882

|
Использую связку STM32F217IG + SRAM CY7C1061AV33 (1 M × 16bit). IAR 6.30
Инициализацию FSMC взял из демо-проекта к плате STM322xG EVAL. Память прекрасно читается и пишется (если писать 16-битными словами) по указателю. Скорость порадовала. Пробовал размещать в этой памяти heap FreeRTOS, подменив указатель - некоторые задачи работают, некоторые нет (видимо из-за выравнивания).
Хотелось бы, конечно, чтобы линкер знал про эту область памяти и мог размещать в ней глобальные структуры, которых планируется много. Ну, конечно, с поправкой на выравнивание по 16 бит. Возможно такое? Попытался поправить скрипт линкера, но при попытке разместить в секции любые данные, процессор не стартует. Если такое возможно сделать, поделитесь, плис, примером скрипта линкера. И откуда в данном случае инициализировать FSMC?
Если нет, то какой способ размещения данных можно применить? Данные - массивы, структуры.
Сообщение отредактировал athlon64 - May 3 2012, 07:19
--------------------
Руслан
|
|
|
|
|
 |
Ответов
|
May 3 2012, 16:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(athlon64 @ May 3 2012, 14:16)  И откуда в данном случае инициализировать FSMC? Самое подходящее для этого место - функция __low_level_init Посмотрите в файле \arm\doc\EWARM_DevelopmentGuide.ENU.pdf что это такое и с чем его употребляют. Добавлено: Впрочем, если пользоваться STM32F2xx_StdPeriph_Lib от ST, то там уже есть свой стартап CMSIS\CM3\DeviceSupport\ST\STM32F2xx\startup\iar\startup_stm32f2xx.s, из него вызывается функция SystemInit, её код находится в файле CMSIS\CM3\DeviceSupport\ST\STM32F2xx\system_stm32f2xx.c, а уже там есть вызов #ifdef DATA_IN_ExtSRAM SystemInit_ExtMemCtl(); #endif /* DATA_IN_ExtSRAM */ так что инициализировать FSMC можно и таким способом, только нужно будет поправить эту функцию под свою конфигурацию памяти.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
May 4 2012, 03:41
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 10-03-10
Из: Уфа
Пользователь №: 55 882

|
Цитата(SSerge @ May 3 2012, 22:44)  Самое подходящее для этого место - функция __low_level_init Ага, точно. Раскомментировал DATA_IN_ExtSRAM, поправил SystemInit_ExtMemCtl();. Теперь в майне сразу же могу работать с ОЗУ, инициализация к тому моменту уже выполнена. Вопрос с местом инициализации решён. Теперь как указать линкеру что это ОЗУ можно использовать? Объявить новый блок с выравниванием 16? А дальше? как разместить в нём нужные мне данные?
Сообщение отредактировал IgorKossak - May 4 2012, 07:07
--------------------
Руслан
|
|
|
|
Сообщений в этой теме
athlon64 IAR (STM32+Ext SRAM) May 3 2012, 07:16 Непомнящий Евгений Дайте свой скрипт, посмотрим May 3 2012, 07:39 athlon64 Вот, например, моя попытка разместить стек во внеш... May 3 2012, 08:24 KRS Цитата(athlon64 @ May 3 2012, 12:24) Вот,... May 3 2012, 09:53  athlon64 Цитата(KRS @ May 3 2012, 15:53) Вы хотите... May 3 2012, 12:03 Непомнящий Евгений Дык а вы инициализируете эту память? Это надо дела... May 3 2012, 12:09 KRS Цитата(Непомнящий Евгений @ May 3 2012, 16... May 3 2012, 12:35  _Артём_ Цитата(KRS @ May 3 2012, 15:35) На cortex... May 3 2012, 13:37   KRS Цитата(_Артём_ @ May 3 2012, 17:37) А что... May 3 2012, 15:24    _Артём_ Цитата(KRS @ May 3 2012, 18:24) можно кон... May 3 2012, 15:30   athlon64 Цитата(_Артём_ @ May 12 2012, 17:47) Откр... May 14 2012, 07:19    _Артём_ Цитата(athlon64 @ May 14 2012, 10:19) Сил... May 15 2012, 18:38     athlon64 Цитата(_Артём_ @ May 16 2012, 00:38) Код ... May 16 2012, 06:36      KRS Цитата(athlon64 @ May 16 2012, 10:36) а, ... May 16 2012, 10:56 athlon64 Всё ещё актуально May 12 2012, 03:49 athlon64 1. Правильно ли я понял что эту 16-бит память нель... May 15 2012, 11:53 KRS Цитата(athlon64 @ May 15 2012, 15:53) 1. ... May 15 2012, 19:13 athlon64 Похоже что ошибка найдена.
Конструктора развернули... May 16 2012, 08:28 athlon64 Перепаяли дорожки, запись байта теперь заработала.... May 16 2012, 13:40 KRS Цитата(athlon64 @ May 16 2012, 17:40) Под... May 16 2012, 19:10  athlon64 Цитата(KRS @ May 17 2012, 01:10) Вы бы дл... May 17 2012, 03:50 athlon64 Странно, конечно, но глючить начинает только обмен... May 17 2012, 05:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|