|
Данные в FLASH, Вопрос по Keil |
|
|
|
Dec 28 2006, 13:03
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598

|
Люди! Хелп! Раскажите, как выделить кусок памяти в FLASH в С среды Keil под переменные? В IARе для AVR это выглядело так int __flash m[200]; А как это делается в арме?
|
|
|
|
|
Dec 28 2006, 13:58
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(jorikdima @ Dec 28 2006, 13:52)  А вопрос был Цитата Раскажите, как выделить кусок памяти в FLASH в С среды Keil под переменные?
А Вам известно, что переменные бывают константными?
|
|
|
|
|
Jan 2 2007, 12:15
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598

|
Цитата(aaarrr @ Dec 28 2006, 15:36)  Цитата(IEC @ Dec 28 2006, 15:28)  Но проблема в том, как компилятору сообщить о занятости куска памяти?
Создать свою секцию данных, нужные данные направить туда соответствующей #pragm'ой и написать скрипт для линкера, где указать физическое положение и размер секции. Спасибо! Совет наверное класный! Если можно, пожалуйста, вариант реализации.
|
|
|
|
|
Jan 2 2007, 12:46
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(IEC @ Jan 2 2007, 12:15)  Спасибо! Совет наверное класный! Если можно, пожалуйста, вариант реализации.  Для RVCT: Объявление блока данных: Код #pragma arm section rodata = "my_data" const int m[200] = {0x01, 0x02, 0x03, 0x04}; #pragma arm section rodata Скрипт линкера: Код FLASH 0x00000000 0x00010000 { FLASH 0x00000000 0x0000f000 { start.o (startup, +First) * (+RO) } FLASH1 0x0000f000 FIXED 0x00001000 { * (my_data) } RAM 0x00200000 0x00004000 { * (+RW, +ZI) } } Данные секции my_data всегда будут размещаться по адресу 0x0000f000.
|
|
|
|
|
Jan 13 2007, 18:06
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 5-12-06
Пользователь №: 23 146

|
Если можно, подскажите, пожалуйста, как такая же задача должна решаться в Rowley CrossWorks
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|