реклама на сайте
подробности

 
 
> LPC23XX. Запуск программы в RAM
Step_ARM
сообщение May 25 2009, 04:28
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Задача следующая. Надо Загрузить с внешнего носителя (датафлэш ,SD) программу в RAM и запустить в RAM из программы на флэш.
Наверняка кто-нибудь делал это? Подскажет кто-нибудь как это сделать?

Сообщение отредактировал Step_ARM - May 25 2009, 04:28
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Troll
сообщение May 26 2009, 03:05
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406



Цитата
1. Записать на внешний носитель эту прогу (с таблицей векторов или без нее?)
Забыли шаг 0. Необходимо собрать (слинковать) исполняемую программу с адреса 0х40000000 в бинарник(если конечно хотите просто копировать в RAM без всяких преобразований). Естественно таблица векторов исполняемой программы должна быть в этом бинарнике и располагаться вначале.
После этого записать бинарник на внешний носитель (датафлэш ,SD).

Цитата
Прочитать из основной программы(кот. на флэш) прогу с внешнего носителя в память с адреса (0х40000000 или 0х40000040?)
Как считали данные с внеш. носителя: отключить прерывания, скопировать данные в RAM с адреса 0х40000000. При этом загрузчик, который записан во флэш контроллера, должен быть собран так, чтобы переменные загрузчика не располагались по адресам 0х40000000 - (0х40000000+Длина исполняемой программы) иначе при копировании загрузчик похерит сам себя.

Цитата
3. Настроить -- MEMMAP=0x02
Да.

Цитата
4. Запустить
start=(void (*)(void))0x40000040(или0х40000000);
start();
с адреса 0х40000000 или 0х0, если сделали ремап на ОЗУ, то это уже одни и теже адреса.

первые 64 байта исполняемой программы должны быть вида:
CODE
_exception_vectors:
LDR PC, ResetAddr /* Reset */
LDR PC, UndefAddr /* Undefined instruction */
LDR PC, SWIAddr /* Software interrupt */
LDR PC, PAbortAddr /* Prefetch abort */
LDR PC, DAbortAddr /* Data abort */
NOP /* Reserved */
LDR PC, IRQAddr /* IRQ interrupt */
LDR PC, FIQAddr /* FIQ interrupt */
ResetAddr:
.word ResetHandler
UndefAddr:
.word UndefHandler
SWIAddr:
.word SWIHandler
PAbortAddr:
.word PAbortHandler
DAbortAddr:
.word DAbortHandler
NOP
IRQAddr:
.word IRQHandler
FIQAddr:
.word FIQHandler

Цитата
5. Пить пиво
Можно и коньячку.

При использовании загрузчиков, одна из основных загвоздок, это правильно слинковать загрузчик и исполняемую программу. И правильно скопировать таблицу векторов исполняемой программы в ОЗУ (здесь тоже возможно несколько вариантов).

Удачи.


--------------------
Hemos Pasado
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Step_ARM   LPC23XX. Запуск программы в RAM   May 25 2009, 04:28
- - HARMHARM   Если Вам нужно загрузить одну такую программу, или...   May 25 2009, 05:14
|- - Step_ARM   Я может чего-то не понимаю... Если взять обычную п...   May 25 2009, 07:07
|- - meister   Цитата(Step_ARM @ May 25 2009, 11:07) Всв...   May 25 2009, 07:16
|- - Step_ARM   Цитата(meister @ May 25 2009, 11:16) КодM...   May 25 2009, 07:23
|- - KRS   Цитата(Step_ARM @ May 25 2009, 11:23) Дей...   May 25 2009, 08:02
|- - Step_ARM   Цитата(KRS @ May 25 2009, 12:02) Опасный ...   May 25 2009, 08:36
- - KRS   Так по теме все просто! Делаете программу для ...   May 25 2009, 08:42
|- - Step_ARM   Цитата(KRS @ May 25 2009, 12:42) Так по т...   May 25 2009, 11:05
|- - KRS   Цитата(Step_ARM @ May 25 2009, 15:05) 1. ...   May 25 2009, 16:30
|- - Step_ARM   Ну что ж... Заработало все прекрасно. Проблема тол...   May 27 2009, 05:56
- - Step_ARM   У LPC23XX основной памяти 8кБ, USB_RAM -- 8кБ, Eth...   May 27 2009, 07:34
|- - meister   Цитата(Step_ARM @ May 27 2009, 11:34) У L...   May 27 2009, 07:48
|- - zltigo   Цитата(Step_ARM @ May 27 2009, 10:34) Воз...   May 27 2009, 08:06
- - Troll   Цитата(Step_ARM @ May 27 2009, 12:56) Как...   May 27 2009, 08:31
|- - zltigo   Цитата(Troll @ May 27 2009, 11:31) ..а са...   May 27 2009, 08:53
|- - Step_ARM   Цитата(zltigo @ May 27 2009, 12:53) Зачем...   May 27 2009, 09:58
|- - zltigo   Цитата(Step_ARM @ May 27 2009, 12:58) zlt...   May 27 2009, 11:02
|- - Step_ARM   Цитата(zltigo @ May 27 2009, 15:02) Вы пр...   May 27 2009, 13:50
|- - meister   Цитата(Step_ARM @ May 27 2009, 17:50) око...   May 27 2009, 14:25
|- - zltigo   Цитата(Step_ARM @ May 27 2009, 16:50) Все...   May 27 2009, 18:17
|- - Step_ARM   Цитата(zltigo @ May 27 2009, 22:17) Отнюд...   May 28 2009, 05:13
|- - meister   Цитата(Step_ARM @ May 28 2009, 09:13) 32к...   May 28 2009, 05:30
|- - zltigo   Цитата(Step_ARM @ May 28 2009, 08:13) Я д...   May 28 2009, 06:15
||- - Step_ARM   Цитата(zltigo @ May 28 2009, 10:15) Явки,...   May 28 2009, 06:19
|- - zltigo   Цитата(Step_ARM @ May 28 2009, 08:13) Вес...   May 28 2009, 06:29
|- - Step_ARM   Цитата(zltigo @ May 28 2009, 10:29) Для р...   May 28 2009, 09:18
- - esaulenka   Подниму тему. Скажите, а как красиво расположить ...   Jun 8 2009, 15:50
- - esaulenka   В очередной раз сработала примета "напиши о п...   Jun 8 2009, 16:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 04:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016