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

 
 
> 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 27 2009, 08:31
Сообщение #2


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

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



Цитата(Step_ARM @ May 27 2009, 12:56) *
Как запустить в RAM , используя всю оперативку 8кБ + USB(8кБ) +Ethernet (16кБ)???
Если в USB и Ethernet располагаются только данные исполняемой программы, то как KRS уже советовал Вам написать свои XCL файлы.. В скриптах определить секции (RAM, USB_RAM, ETH_RAM), которые будут располагаться по нужным адресам.

Если требуется, чтобы там располагался исполняемый код. Отдельные функции исполняемой программы расположить в секциях USB_RAM, ETH_RAM и загрузчик должен будет считывать и копировать несколько бинарников по требуемым адресам. Ну или как вариант загрузчик копирует только первый бинарник и передает управление исполняемой программе, а сама программа уже подгружает в USB_RAM и ETH_RAM требуемые функции.


--------------------
Hemos Pasado
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2009, 08:53
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Troll @ May 27 2009, 11:31) *
..а сама программа уже подгружает в USB_RAM и ETH_RAM требуемые функции.

Зачем все эти пляски с бубном, если всем этим прекрасно по жизни занимается линкер, только ему надо сказать, какой памятью он может располагать. Только в скрипте загрузчика еще надо, естественно, надо вдарить по регистрам, дабы память была доспупна, да errata почитать - там по крайней мере в первых ревизиях были ограничения на использования памяти для исполняемого кода.

А вообще сам подход к делу неверен - совершено незачем мучительно впихивать для отладки слона в посудную лавку sad.gif. Если уж совсем без отладчика думалка не думает, то отдаживайтесь во Flash - ресурс у него большой, а если и помрет (у меня еще за пяток лет ни один еще не помер в боевых отладочных платах), то цена вопроса замена контроллера. В дополнение, если уж возникает необходимость мучительно отлаживать всего-то десяток килобайт программы, тогда до прояснения прямой путь в симуляторы и/или кроссотладку кусков исходников на PCшке.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение May 27 2009, 09:58
Сообщение #4


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

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



Цитата(zltigo @ May 27 2009, 12:53) *
Зачем все эти пляски с бубном, если всем этим прекрасно по жизни занимается линкер, только ему надо сказать, какой памятью он может располагать. Только в скрипте загрузчика еще надо, естественно, надо вдарить по регистрам, дабы память была доспупна, да errata почитать - там по крайней мере в первых ревизиях были ограничения на использования памяти для исполняемого кода.

А вообще сам подход к делу неверен - совершено незачем мучительно впихивать для отладки слона в посудную лавку sad.gif. Если уж совсем без отладчика думалка не думает, то отдаживайтесь во Flash - ресурс у него большой, а если и помрет (у меня еще за пяток лет ни один еще не помер в боевых отладочных платах), то цена вопроса замена контроллера. В дополнение, если уж возникает необходимость мучительно отлаживать всего-то десяток килобайт программы, тогда до прояснения прямой путь в симуляторы и/или кроссотладку кусков исходников на PCшке.

zltigo в своем репертуаре :-)))
Вопрос-то и был в том как рассказать линкеру о доступной ему памяти. Тут перед этим кто-то показал как на сегменты бить. Проверим.Просто не нашел описания этого дела.

Подход к делу вещь индивидуальная. При чем тут вообще отладчик? Задача-то с довольно приятными последствиями. Например, можно не писать свой нестандартный загрузчик на флэш. Можно еще писать дополнительные программки и загружать их с внешнего носителя в память. Разве не в кайф?

Результаты: Написал программу загрузчик с SD карты. Хранение в dataflash. Из основной программы загружается с dataflash в Ethernet RAM. INTVEC в 0х40000000 -- 0х4000003F. Ремап. Выводит на экран запрос карты и состояние загрузки. Длина кода ~ 5600 байт , DATA -- ~4200 байт. Стирает flash. Затем с SD карты записывает нужный файл. Ремап и переход на старт адрес. Вроде работает -- ищу глюки. Вот еще разберусь с сегментами памяти и можно довольно большие проги в RAM запускать(если получится).

Проблема же с загрузчиком была в том, что COPY_RAM_TO_FLASH не хочет копировать из старших областей RAM. Буфер пришлось размещать в основной памяти через указатель. И еще не инитится основная память нулями, но это поправимо.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2009, 11:02
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Step_ARM @ May 27 2009, 12:58) *
zltigo в своем репертуаре :-)))

Вы правы - люблю давать наводки для самостоятельного поиска а не "нажми на кномку". Иначе поток вопросок "где кнопка" не иссякнет.
Цитата
Вопрос-то и был в том как рассказать линкеру о доступной ему памяти.

Ответ был - это получится, только в документацию заглянуть. Узнав о самом факте существования документации и возможности управлять линкером не только из более, чем убогой IDE жизнь становится веселее.
Цитата
Задача-то с довольно приятными последствиями. Например, можно не писать свой нестандартный загрузчик на флэш.

Толку в мелких программах мало, как и в цеплянии дополнительно флеша в такой ситуации. С другой стороны для контроллеров с внешней 32bit RAM уже тупо грузить по фиксированным адресам неразумно. Правильный путь загрузка перемещаемого кода.
Цитата
Можно еще писать дополнительные программки и загружать их с внешнего носителя в память. Разве не в кайф?

С таким-же успехом их можно в Flash подгружать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение May 27 2009, 13:50
Сообщение #6


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

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



Цитата(zltigo @ May 27 2009, 15:02) *
Вы правы - люблю давать наводки для самостоятельного поиска а не "нажми на кномку". Иначе поток вопросок "где кнопка" не иссякнет.

Ответ был - это получится, только в документацию заглянуть. Узнав о самом факте существования документации и возможности управлять линкером не только из более, чем убогой IDE жизнь становится веселее.

Толку в мелких программах мало, как и в цеплянии дополнительно флеша в такой ситуации. С другой стороны для контроллеров с внешней 32bit RAM уже тупо грузить по фиксированным адресам неразумно. Правильный путь загрузка перемещаемого кода.

С таким-же успехом их можно в Flash подгружать.

Все замечательно, но ведь HELP у IARa -- полный отстой. По крайней мере я ничего не нашел об этом. Помоги с доками, zltigo?

Ни фига себе мелкая -- около 30 кБ за минусом стеков. При желаниии много чего можно впихнуть.
А о внешней RAM и говорить не стоит -- цена проекта вырастает и размеры платы не позволяют. Да и медленновато работает с внешней RAM.

Конечно, можно и во флэш грузить... Только для этого надо держать ДЛИ-И-И-ИННЫЙ загрузчик на флэш, у которого есть интерфейсы для внешних носителей , что тупо, говоря языком zltigo.

А в принципе все ясно. Глюков не нашел. Все отлично работает. Спасибо.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2009, 18:17
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Step_ARM @ May 27 2009, 16:50) *
Все замечательно, но ведь HELP у IARa -- полный отстой.

Отнюдь - он ОЧЕНЬ хороший.
Цитата
Конечно, можно и во флэш грузить... Только для этого надо держать ДЛИ-И-И-ИННЫЙ загрузчик на флэш, у которого есть интерфейсы для внешних носителей

Этот загрузчик будет "длиннее" загрузчика в RAM на несколько команд вызова функции системного LPC загрузчика записи во Flash.


--------------------
Feci, quod potui, faciant meliora potentes
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
- - 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
|- - meister   Цитата(Step_ARM @ May 27 2009, 17:50) око...   May 27 2009, 14:25
|- - 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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