Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: адреса ром и рам
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
sergey sva
Какие адреса нужно указывать при настройке линкера ,мк at91sam7s256 , пробовал
0x100000 начинается загрузка, появляется окно с прогрессом и зависает
(окно с настройкой IAR arm в прикрепленной картинке)?
Еще вопрос, так понял, что при загрузки программы в флэш по средствам wiggler
Программа сначала записывается в ОЗУ а после переписывается в флэш,
Размер ОЗУ 64кб флэш 256к ,получается что максиму что можно записать
Используя wiggler 64к?
aaarrr
Цитата(sergey sva @ Nov 12 2008, 16:47) *
Какие адреса нужно указывать при настройке линкера ,мк at91sam7s256 , пробовал
0x100000 начинается загрузка, появляется окно с прогрессом и зависает
(окно с настройкой IAR arm в прикрепленной картинке)?

Зависит от того, пользуетесь ли Вы remap'ом. Если нет, то флеш будет доступна по адресам 0x0 - 0x3ffff.

Цитата(sergey sva @ Nov 12 2008, 16:47) *
Еще вопрос, так понял, что при загрузки программы в флэш по средствам wiggler
Программа сначала записывается в ОЗУ а после переписывается в флэш,
Размер ОЗУ 64кб флэш 256к ,получается что максиму что можно записать
Используя wiggler 64к?

Нет, она же не сразу вся записывается.
sergey sva
Цитата
Зависит от того, пользуетесь ли Вы remap'ом. Если нет, то флеш будет доступна по адресам 0x0 - 0x3ffff.

Только изучаю arm поэтому не все мне понятно, ремап эта опция которая включается гдето в настройках или установка бита определеного регистра ? для чего может пригодится
перераспределение памяти?
aaarrr
Цитата(sergey sva @ Nov 12 2008, 17:09) *
Только изучаю arm поэтому не все мне понятно, ремап эта опция которая включается гдето в настройках или установка бита определеного регистра ?

Это опция, которая включается в регистре MC_RCR Memory Controller'а.

Цитата(sergey sva @ Nov 12 2008, 17:09) *
для чего может пригодится перераспределение памяти?

Это во многом рудимент, унаследованный от старых не флешовых серий, но некоторая польза есть, если программа работает полностью из RAM (у меня, например, это довольно частый случай) или если нужно сделать быстрые прерывания.
sergey sva
понятно. Еще по поводу памяти в datachet написано :
Internal ROM
The AT91SAM7S Series embeds an Internal ROM. The ROM contains the FFPI and the
SAM-BA program.
The internal ROM is not mapped by default.
если нет карты на этот ром что же в настройке писать пробовал 0x00 начало и 0x00 конец
компилятор выдает ошибку что не правильно указана память.
aaarrr
Цитата(sergey sva @ Nov 12 2008, 18:55) *
если нет карты на этот ром что же в настройке писать пробовал 0x00 начало и 0x00 конец
компилятор выдает ошибку что не правильно указана память.

А зачем вообще что-то писать, если он никак не доступен?
sergey sva
да верно не чего не записал, и все заработало правда из ОЗУ, а из флэши не
хочет работать, еще после загрузки в флэш ,куча сообщений об ошибке :

Цитата
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000003, target byte: 0xFF, byte in file: 0xE5
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000004, target byte: 0xFF, byte in file: 0x18
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000005, target byte: 0xFF, byte in file: 0xF0
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000006, target byte: 0xFF, byte in file: 0x9F
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000007, target byte: 0xFF, byte in file: 0xE5
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000008, target byte: 0xFF, byte in file: 0x18
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000009, target byte: 0xFF, byte in file: 0xF0

что еще нужно настроить, где копать?, ума не приложу
Сергей Борщ
Цитата(sergey sva @ Nov 13 2008, 16:40) *
что еще нужно настроить, где копать?, ума не приложу
Может забыли поставить галочку use flash loader? Для IAR 4.хх она находится в Project->options->debugger->download
sergey sva
стоит галка и галка на проверку тоже стоит. Запись начинается, после выходит
сообщение что нужно посмотреть лог, а внем

Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000003, target byte: 0xFF, byte in file: 0xE5
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000004, target byte: 0xFF, byte in file: 0x18
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000005, target byte: 0xFF, byte in file: 0xF0
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000006, target byte: 0xFF, byte in file: 0x9F
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000007, target byte: 0xFF, byte in file: 0xE5
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000008, target byte: 0xFF, byte in file: 0x18
Thu Nov 13 17:28:45 2008: Warning:
Verify error at address 0x00000009, target byte: 0xFF, byte in file: 0xF0
sergey sva
подозреваю , что сдесь что то не правильно настроено.
Код
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x0;
define symbol __ICFEDIT_region_ROM_end__   = 0x0;
define symbol __ICFEDIT_region_RAM_start__ = 0x00200000;
define symbol __ICFEDIT_region_RAM_end__   = 0x0020FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__   = 0x200;
define symbol __ICFEDIT_size_svcstack__ = 0x0;
define symbol __ICFEDIT_size_irqstack__ = 0x40;
define symbol __ICFEDIT_size_fiqstack__ = 0x0;
define symbol __ICFEDIT_size_undstack__ = 0x0;
define symbol __ICFEDIT_size_abtstack__ = 0x0;
define symbol __ICFEDIT_size_heap__     = 0x0;
/**** End of ICF editor section. ###ICF###*/

define memory mem with size = 4G;
define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];

define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };

//initialize by copy { readwrite };
do not initialize  { section .noinit };

place at address mem:__ICFEDIT_intvec_start__    { readonly section .intvec };

define block FLASHLOADER { readonly, readwrite,
                           block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
                           block UND_STACK, block ABT_STACK, block HEAP };
place at start of RAM_region { block FLASHLOADER };

define exported symbol fl_ram_end = __ICFEDIT_region_RAM_end__;
sergey sva
Не как что то не хочет загружаться в флэш , из рам работает. Еще размер бинарника генерируемого iar
большой 2099180 bytes что не чего не пойму, кода там 5-10 строчек.
sergey sva
настроил порт epp разрешил прерывания от lpt, сейчас камень прошивается и в ф и в рам.
Тут вот разбираюсь дальше, с плл за что отвечает параметр :PLL Lock Counter?
aaarrr
Цитата(sergey sva @ Nov 15 2008, 18:37) *
Тут вот разбираюсь дальше, с плл за что отвечает параметр :PLL Lock Counter?

За время (в клоках SCLK), после которого выход PLL будет считаться стабилизировавшимся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.