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

 
 
> 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
Ответов
HARMHARM
сообщение May 25 2009, 05:14
Сообщение #2


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Если Вам нужно загрузить одну такую программу, или несколько однотипных, то можно линковать её статически на определенные адреса в памяти к определенной версии программы во флеше. Похоже на работу с загрузчиком во флеш...
Иначе придется использовать Dynamic Linking, точно как программы на ПК загружаются. Посмотрите также ELF, есть его спецификация для ARM. Для ARM7 имхо сложновато будет.
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение May 25 2009, 07:07
Сообщение #3


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

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



Я может чего-то не понимаю...
Если взять обычную программу объемом к примеру 3-4кБ, указать при ините режим работы в оперативке, скомпилить ее с указанием адресов в памяти 0х40000040(для таблицы векторов).
Указать точку входа -- адрес 0х40000040.
Разве так не будет работать?
Как же тогда работает программа загрузчик через JTAG она ведь грузится в оперативку?
Дело в том , что мне не важно что произойдет с программой на флэш.
Всвязи с этим еще возникает вопрос -- как программно запустить исполняемую программу сначала т.е. с нулевого адреса флэш?
Go to the top of the page
 
+Quote Post
meister
сообщение May 25 2009, 07:16
Сообщение #4


Местный
***

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



Цитата(Step_ARM @ May 25 2009, 11:07) *
Всвязи с этим еще возникает вопрос -- как программно запустить исполняемую программу сначала т.е. с нулевого адреса флэш?


Код
MOV pc, #0;


Код
((void (*)(void))0)();
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение May 25 2009, 07:23
Сообщение #5


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

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



Цитата(meister @ May 25 2009, 11:16) *
Код
MOV pc, #0;


Код
((void (*)(void))0)();

Действительно
start=(void (*)(void))START_ADDR;
start();
запускает программу заново.
Go to the top of the page
 
+Quote Post
KRS
сообщение May 25 2009, 08:02
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Step_ARM @ May 25 2009, 11:23) *
Действительно
start=(void (*)(void))START_ADDR;
start();
запускает программу заново.


Опасный способ, потому что обычно, когда проц начинает исполнять программу с Reset Vectora он вышел из ресета ( переферрия выключена...). IMHO лучше использовать программный сброс! ( Например при помощи watchdog или другие механизмы бывают...)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Step_ARM   LPC23XX. Запуск программы в RAM   May 25 2009, 04:28
|- - 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
- - Troll   Цитата1. Записать на внешний носитель эту прогу (с...   May 26 2009, 03:05
|- - 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 Текстовая версия Сейчас: 19th June 2025 - 04:36
Рейтинг@Mail.ru


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