|
LPC23XX. Запуск программы в RAM |
|
|
|
 |
Ответов
|
May 27 2009, 08:31
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
May 27 2009, 08:53
|

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

|
Цитата(Troll @ May 27 2009, 11:31)  ..а сама программа уже подгружает в USB_RAM и ETH_RAM требуемые функции. Зачем все эти пляски с бубном, если всем этим прекрасно по жизни занимается линкер, только ему надо сказать, какой памятью он может располагать. Только в скрипте загрузчика еще надо, естественно, надо вдарить по регистрам, дабы память была доспупна, да errata почитать - там по крайней мере в первых ревизиях были ограничения на использования памяти для исполняемого кода. А вообще сам подход к делу неверен - совершено незачем мучительно впихивать для отладки слона в посудную лавку  . Если уж совсем без отладчика думалка не думает, то отдаживайтесь во Flash - ресурс у него большой, а если и помрет (у меня еще за пяток лет ни один еще не помер в боевых отладочных платах), то цена вопроса замена контроллера. В дополнение, если уж возникает необходимость мучительно отлаживать всего-то десяток килобайт программы, тогда до прояснения прямой путь в симуляторы и/или кроссотладку кусков исходников на PCшке.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 27 2009, 09:58
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870

|
Цитата(zltigo @ May 27 2009, 12:53)  Зачем все эти пляски с бубном, если всем этим прекрасно по жизни занимается линкер, только ему надо сказать, какой памятью он может располагать. Только в скрипте загрузчика еще надо, естественно, надо вдарить по регистрам, дабы память была доспупна, да errata почитать - там по крайней мере в первых ревизиях были ограничения на использования памяти для исполняемого кода. А вообще сам подход к делу неверен - совершено незачем мучительно впихивать для отладки слона в посудную лавку  . Если уж совсем без отладчика думалка не думает, то отдаживайтесь во Flash - ресурс у него большой, а если и помрет (у меня еще за пяток лет ни один еще не помер в боевых отладочных платах), то цена вопроса замена контроллера. В дополнение, если уж возникает необходимость мучительно отлаживать всего-то десяток килобайт программы, тогда до прояснения прямой путь в симуляторы и/или кроссотладку кусков исходников на PCшке. zltigo в своем репертуаре :-))) Вопрос-то и был в том как рассказать линкеру о доступной ему памяти. Тут перед этим кто-то показал как на сегменты бить. Проверим.Просто не нашел описания этого дела. Подход к делу вещь индивидуальная. При чем тут вообще отладчик? Задача-то с довольно приятными последствиями. Например, можно не писать свой нестандартный загрузчик на флэш. Можно еще писать дополнительные программки и загружать их с внешнего носителя в память. Разве не в кайф? Результаты: Написал программу загрузчик с SD карты. Хранение в dataflash. Из основной программы загружается с dataflash в Ethernet RAM. INTVEC в 0х40000000 -- 0х4000003F. Ремап. Выводит на экран запрос карты и состояние загрузки. Длина кода ~ 5600 байт , DATA -- ~4200 байт. Стирает flash. Затем с SD карты записывает нужный файл. Ремап и переход на старт адрес. Вроде работает -- ищу глюки. Вот еще разберусь с сегментами памяти и можно довольно большие проги в RAM запускать(если получится). Проблема же с загрузчиком была в том, что COPY_RAM_TO_FLASH не хочет копировать из старших областей RAM. Буфер пришлось размещать в основной памяти через указатель. И еще не инитится основная память нулями, но это поправимо.
|
|
|
|
|
May 27 2009, 11:02
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
May 27 2009, 13:50
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870

|
Цитата(zltigo @ May 27 2009, 15:02)  Вы правы - люблю давать наводки для самостоятельного поиска а не "нажми на кномку". Иначе поток вопросок "где кнопка" не иссякнет.
Ответ был - это получится, только в документацию заглянуть. Узнав о самом факте существования документации и возможности управлять линкером не только из более, чем убогой IDE жизнь становится веселее.
Толку в мелких программах мало, как и в цеплянии дополнительно флеша в такой ситуации. С другой стороны для контроллеров с внешней 32bit RAM уже тупо грузить по фиксированным адресам неразумно. Правильный путь загрузка перемещаемого кода.
С таким-же успехом их можно в Flash подгружать. Все замечательно, но ведь HELP у IARa -- полный отстой. По крайней мере я ничего не нашел об этом. Помоги с доками, zltigo? Ни фига себе мелкая -- около 30 кБ за минусом стеков. При желаниии много чего можно впихнуть. А о внешней RAM и говорить не стоит -- цена проекта вырастает и размеры платы не позволяют. Да и медленновато работает с внешней RAM. Конечно, можно и во флэш грузить... Только для этого надо держать ДЛИ-И-И-ИННЫЙ загрузчик на флэш, у которого есть интерфейсы для внешних носителей , что тупо, говоря языком zltigo. А в принципе все ясно. Глюков не нашел. Все отлично работает. Спасибо.
|
|
|
|
Сообщений в этой теме
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     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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|