Перейти к содержанию
    

MMU D-Cache I-Cache для ARM926EJ-S

В sdram.icf задано:

define symbol __ICFEDIT_size_cstack__   = 0x1000;

 

P.S. Забыл указать, что прошиваю и отлаживаюсь с помощью J-Link for ARM от IAR System.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А IRQ стек?

 

Вообще, я отлаживаюсь последовательным интерфейсом. Rs232. Дешево и сердито. А главное - быстро и надежно.

 

У вас память 2х4к оказывается...

А программа где сама? Кто ее туда грузит? Кто инициализирует стеки?

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А IRQ стек?

define symbol __ICFEDIT_size_irqstack__ = 0x60;

Только ругается он на CSTACK.

Изменено пользователем ZED

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я представляю, у вас не отлажена среда работы.

 

Т.е. вы доверяете ИАРу грузить программу и совершать необходимые манипуляции.

Я лично не так доверчив.

 

1. Написать свой загрузчик. Который бы грузил нечто в SRAM.

2. Это нечто из SRAM может по командам с PC либо записать что-то во флэшку, либо записать нечто в SDRAM и запустить это нечто (Предварительно, разумеется, инициализировав SDRAM).

 

Таким образом в ходу будут две программы - маленький загрузчик и основная прогграмма (которая компилируется под SDRAM).

 

Тут вы управляете всеми процессами ЛИЧНО.

Ну, а отладочная консоль естественным образом проистекает от DBGU.

 

На все это у вас уйдет пара дней. Зато потом будет легко.

 

 

Вообще-то у вас варнинг и на IRQ есть... (0x1000 на CS - это дофига. У меня стоит 0x300. И то столько не нужно. Программа километровая... С переключателем задач, USB, кучей всякой дряни...)

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну я вообщето взял готовый проект getting-started-project-at91sam9260-ek и просто вставил туда свой код.

1. Написать свой загрузчик. Который бы грузил нечто в SRAM.

2. Это нечто из SRAM может по командам с PC либо записать что-то во флэшку, либо записать нечто в SDRAM и запустить это нечто (Предварительно, разумеется, инициализировав SDRAM).

А можно пример?

Изменено пользователем ZED

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

правильно ли я понимаю: TLB располагаем в конце SDRAM

 

Неправильно :) TLB -- это внутренний узел устройства управления памятью (MMU), а посему в памяти ну никак находиться не может. Говоря упрощённо, TLB -- это кэш-память, в которой хранятся последние использованные строки таблиц переадресации. А вот эти самые таблицы действительно хранятся в памяти, откуда MMU их по мере надобности считывает и кэширует в TLB.

 

Местоположение таблиц в памяти роли само по себе не играет, надо лишь обеспечить их правильное выравнивание (граница 16 Кбайт для таблицы первого уровня, если склероз не подводит). Так что выделяете под них то место, какое для Вас лично удобно, и всё.

 

Ну я вообщето взял готовый проект getting-started-project-at91sam9260-ek и просто вставил туда свой код.

 

К готовым проектам относитесь настороженно и достаточно критически: их качество оставляет желать. Меня в своё время поразил стартовый код для 9261, я даже по этому поводу небольшим сообщением разродился.

 

А можно пример?

 

Вообще, эта задача, хотя и не слишком сложная, тривиальной тоже не является. Фактически всякие там SAM-BA и прочие средства программирования примерно так и работают: по JTAG загружают в оперативу некий код и запускают его на выполнение, а уже он обеспечивает запись во флэш-память, при необходимости подгружая информацию с ПК. В общем, пример не такой маленький получится, да и не уверен, что найти его просто...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу примера.

Это действительно не так чтоб очень,но большая работа.

Но вполне по силам любому.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу примера.

Это действительно не так чтоб очень,но большая работа.

Но вполне по силам любому.

А счего начать? Я даже не совсем представляю как все это должно выглядеть.

Изменено пользователем ZED

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перед вами плата.

Перед вами PC.

Шнурок RS232 между ними.

Руководящий документ - абзац из даташита с описанием SAM-BA.

------

1. Пишите PC программу, которая сможет загонять в SRAM файл и запускать его.

2. Тренируетесь. Мигаете светодиодами и пр.

3. Теперь загоняете не абы какую программу, а программу, которая умеет взаимодействовать с PC. В целях записи

некоего файла во флэшку. Также с целью заполнения уже SDRAM неким файлом и запуском этого файла.

4. Тренируетесь.

5. Загоняете во флэшку программу, которая:

Загрузившись в SRAM (это делает за вас сам процессор):

1. Инициализирует SDRAM

2. Переписывает туда программу

3. Запускает ея.

 

Все.

 

Ну, естественно, RS232 на всех этапах служит для отладки.

 

Я вот так именно и поступал. Если умеете программировать - там нечего делать практически. Алгоритм SAM-BA - это примерно 3\4 15" экрана в Дельфи.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Пишите PC программу, которая сможет загонять в SRAM файл и запускать его.

Зачем советовать человеку изобретать велосипед? :) Для этих целей есть SAB-BA. Если не будете доверять штатному инструментарию, то у вас не останется времени на сам проект...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...