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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Запуск исполняемого кода из ОЗУ
rfserega
сообщение Mar 29 2012, 04:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 6-07-08
Из: Нижний Новгород
Пользователь №: 38 767



Подскажите как запустить исполняемый код из ОЗУ. Использую Keil 4 и процессор cortex-m3 sam3u от Atmel. Я ламер в этом вопросе.
Go to the top of the page
 
+Quote Post
subver
сообщение Mar 29 2012, 07:05
Сообщение #2


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

Группа: Свой
Сообщений: 185
Регистрация: 4-06-05
Из: Омск
Пользователь №: 5 726



Цитата(rfserega @ Mar 29 2012, 10:02) *
Подскажите как запустить исполняемый код из ОЗУ. Использую Keil 4 и процессор cortex-m3 sam3u от Atmel. Я ламер в этом вопросе.


Загрузить код в озу и передать ему управление ))
у ARM не разделяется память программ и данных.
Go to the top of the page
 
+Quote Post
klen
сообщение Mar 29 2012, 07:57
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(rfserega @ Mar 29 2012, 08:02) *
Подскажите как запустить исполняемый код из ОЗУ. Использую Keil 4 и процессор cortex-m3 sam3u от Atmel. Я ламер в этом вопросе.

в corterx-m3 это не дает профицита, работа из флеша на полной скорости скорее всего будет быстрее - чтение команд и обмен данными будуи выполнятся паралельно, если выполнение из озу - то чтение команд и обмен данными будут разделять шинную матрицу и шину к озу. если вам нужен полиморфный код котрый сам себя генерит и на лету выполняется то да! это конечно правильный метод. Как то так я все это понимаю.
Go to the top of the page
 
+Quote Post
rfserega
сообщение Mar 29 2012, 09:12
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 6-07-08
Из: Нижний Новгород
Пользователь №: 38 767



Цитата(subver @ Mar 29 2012, 11:05) *
Загрузить код в озу и передать ему управление ))
у ARM не разделяется память программ и данных.


Извиняюсь за ламерский вопрос, но как можно загрузить код в озу и передать ему управление?
Например загрузчиком по UART или это можно сделать из под Keil? Если да, то как?

Цитата(klen @ Mar 29 2012, 11:57) *
в corterx-m3 это не дает профицита, работа из флеша на полной скорости скорее всего будет быстрее - чтение команд и обмен данными будуи выполнятся паралельно, если выполнение из озу - то чтение команд и обмен данными будут разделять шинную матрицу и шину к озу. если вам нужен полиморфный код котрый сам себя генерит и на лету выполняется то да! это конечно правильный метод. Как то так я все это понимаю.


Дела в том, что я планирую использовать медленную внешнюю ПЗУ. По ТЗ не могу пользоваться внутренней ПЗУ (есть требование спецстойкости). При инициализации МК перебрасываю медленно код программы из внешней ПЗУ во внутреннюю или внешнюю ОЗУ и исполняю. Сейчас как раз хочу померить потерю в производительности при такой конфигурации. Буду всем крайне признателен за помощь.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 29 2012, 14:00
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Если внутренний флэш "неспецстойкий", то получив к нему доступ, автоматически получаешь доступ ко всему остальному. Хотя, если денег платят, то какая разница...



--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 29 2012, 20:42
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(klen @ Mar 29 2012, 10:57) *
в corterx-m3 это не дает профицита


А экономить энергию не получится?
Если отключить флеш и выполнять что-то короткое (прерывания) и засыпать на выходе?
Go to the top of the page
 
+Quote Post
rfserega
сообщение Mar 30 2012, 03:54
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 6-07-08
Из: Нижний Новгород
Пользователь №: 38 767



Цитата(DpInRock @ Mar 29 2012, 18:00) *
Если внутренний флэш "неспецстойкий", то получив к нему доступ, автоматически получаешь доступ ко всему остальному. Хотя, если денег платят, то какая разница...

вообще не понял что вы имеете в виду
Go to the top of the page
 
+Quote Post
sevastianovd
сообщение Mar 30 2012, 04:36
Сообщение #8


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

Группа: Свой
Сообщений: 78
Регистрация: 8-04-08
Из: Омск
Пользователь №: 36 562



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

просто используйте миландровский процессор.
Go to the top of the page
 
+Quote Post
rfserega
сообщение Mar 30 2012, 05:01
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 6-07-08
Из: Нижний Новгород
Пользователь №: 38 767



Цитата(sevastianovd @ Mar 30 2012, 08:36) *
если у вас спецстойкость, то причем здесь atmel?
или вы считаете, что процессор у вас выживет а его ПЗУ нет? - это бред.
меня трясет, когда я вижу перечни на согласование применения импорта, совершенно не оправданного!
создается впечатление, что среди военных до уровня министра нет ни одного инженера-электронщика!

просто используйте миландровский процессор.


На Atmel мы отрабатываем алгоритмы, которые в дальнейшем переносятся под миландровский процессор, это во-первых. Архитектура у них примерно одинакова.
Во вторых, FLASH память - это самый нестойкий элемент при спецвоздействии, если вы не в курсе. Это во-вторых.
Ваши домыслы оставьте при себе - это в третьих.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 30 2012, 05:32
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Разделите память на две страницы, и используйте DMA для копирования в память из внешнего EEPROM (или NOR флеш). Пока исполняется код из нижней памяти, параллельно копируйте в верхнюю, и наоборот. Процессорная начитка из периферии - самый медленный вариант.

По поводу МК - флеш там наверняка NOR что хорошо для спецвоздействий, а вот ОЗУ я сильно сомневаюсь что на статической памяти, хотя все может быть. Так что слабо верю что код не посыпется при облучении. С другой стороны, сейчас все очень сильно притянуто за уши, реально стойкой логики никто не делает.
Go to the top of the page
 
+Quote Post
sevastianovd
сообщение Mar 30 2012, 06:00
Сообщение #11


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

Группа: Свой
Сообщений: 78
Регистрация: 8-04-08
Из: Омск
Пользователь №: 36 562



Цитата(rfserega @ Mar 30 2012, 08:01) *
На Atmel мы отрабатываем алгоритмы, которые в дальнейшем переносятся под миландровский процессор, это во-первых. Архитектура у них примерно одинакова.
Во вторых, FLASH память - это самый нестойкий элемент при спецвоздействии, если вы не в курсе. Это во-вторых.
Ваши домыслы оставьте при себе - это в третьих.

нагрубил, извините,

у них одинакова архитектура только ядра, все остальное - нет, рекомендую быстрее начинать отладку на штатном процессоре.

по поводу памяти, в любом случае какой-то код должен исполняться из ПЗУ контроллера
этот код может подгружать основную программу из вне и прочее,
но он есть, и внешней памятью вы вряд-ли повысити стойкость

ps 1986ВЕ91Т 7.И1-3Ус,7.И6-3Ус,7.И7-10х1Ус,7.С1-5Ус,7.С4-0,1х1Ус,7.К1-1К,7.К4-0,05х1К не так уж и плохо...

Сообщение отредактировал sevastianovd - Mar 30 2012, 06:04
Go to the top of the page
 
+Quote Post
rfserega
сообщение Mar 30 2012, 09:28
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 6-07-08
Из: Нижний Новгород
Пользователь №: 38 767



Цитата(sevastianovd @ Mar 30 2012, 10:00) *
нагрубил, извините,

у них одинакова архитектура только ядра, все остальное - нет, рекомендую быстрее начинать отладку на штатном процессоре.

по поводу памяти, в любом случае какой-то код должен исполняться из ПЗУ контроллера
этот код может подгружать основную программу из вне и прочее,
но он есть, и внешней памятью вы вряд-ли повысити стойкость

ps 1986ВЕ91Т 7.И1-3Ус,7.И6-3Ус,7.И7-10х1Ус,7.С1-5Ус,7.С4-0,1х1Ус,7.К1-1К,7.К4-0,05х1К не так уж и плохо...


Мы уже начали отлаживаться на 1986ВЕ1Т, но пока плата одна, поэтому параллельно алгоритмы еще отлаживаем на sam3u. В 1986ВЕ1Т есть ROM которая по наличию сигналов на определенных ножках определяет откуда брать прошивку: из внутренней ПЗУ, внешней и тд.

У Миландра готовится к выпуску радиационно стойкое ОППЗУ 1645РТ2У.


Цитата(Shivers @ Mar 30 2012, 09:32) *
Разделите память на две страницы, и используйте DMA для копирования в память из внешнего EEPROM (или NOR флеш). Пока исполняется код из нижней памяти, параллельно копируйте в верхнюю, и наоборот. Процессорная начитка из периферии - самый медленный вариант.


это всё должен делать загрузчик? объясните, пожалуйста поподробнее

Цитата(Shivers @ Mar 30 2012, 09:32) *
По поводу МК - флеш там наверняка NOR что хорошо для спецвоздействий, а вот ОЗУ я сильно сомневаюсь что на статической памяти, хотя все может быть. Так что слабо верю что код не посыпется при облучении. С другой стороны, сейчас все очень сильно притянуто за уши, реально стойкой логики никто не делает.


у Миландра есть ОЗУ на 16Мбит (1Мх16) 1645РУ4У
1645РУ4АУ 7.И1-4Ус,7.И6-0.3х1Ус,7.И7-1,6х4Ус,7.С1-50х4Ус,7.С4-0,8х5Ус,7.К1-0,4х2К,0,4х1К

Сообщение отредактировал rfserega - Mar 30 2012, 15:00
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 30 2012, 21:11
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(rfserega @ Mar 30 2012, 13:28) *
это всё должен делать загрузчик? объясните, пожалуйста поподробнее

Само собой. Как писали выше - загрузчик, затем far call. И то и другое можно на С написать, думаю.
А я имел ввиду следующее - ведь вам производительность нужна? Тогда копирование из внешней ПЗУ надо делать с помощью ДМА, т.к. это быстрее. И поскольку ДМА работает независимо от процессора, этим можно воспользоваться: программа может начать работу раньше, чем вы скопируете всю программу внутрь.
Правда, это копирование должен кто то запустить. А для этого, как я понимаю, нужно использовать system memory boot mode, поскольку это единственный способ забутиться из внешней памяти.
Т.е. как это может выглядеть: внешняя маленькая микросхема с загрузчиком - мк с нее бутится. Далее, загрузчик начинает копировать основную программу из (другой, большой) микросхемы ПРОМ. Копирование лучше всего делать по дма (как писал выше), а пока дма работает можно заниамться чем то другим ... проинициализировать остальную периферию, к примеру; в общем, начать работу еще до окончания копирования.

Цитата(rfserega @ Mar 30 2012, 13:28) *
у Миландра есть ОЗУ на 16Мбит (1Мх16) 1645РУ4У
1645РУ4АУ 7.И1-4Ус,7.И6-0.3х1Ус,7.И7-1,6х4Ус,7.С1-50х4Ус,7.С4-0,8х5Ус,7.К1-0,4х2К,0,4х1К

Да, есть такие. Здоровенные керамические корпуса, после привычных tsop выглядят чудовищно, а место на плате занимают ... слёзы. Если бы в фобосгрунте использовали не китайские технологии с фабрики дядюшки Ляо, а по честному - суровую российскую электронику в металлокерамике, фобосгрунт бы просто не взлетел )
Кстати, и параллельная NOR флеш у них есть, и даже вроде последовательная, хотя не уверен. Что забавно, для прошивки nor флеша они предлагают купить у них программатор ) причем, даже не один - есть и для отдельного программирования на производстве, и для внутрисхемного, через наплатную гребенку.
Go to the top of the page
 
+Quote Post
Nix_86
сообщение Apr 1 2012, 12:27
Сообщение #14


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

Группа: Свой
Сообщений: 85
Регистрация: 7-04-11
Пользователь №: 64 200



Цитата(sevastianovd @ Mar 30 2012, 10:00) *
нагрубил, извините,

у них одинакова архитектура только ядра, все остальное - нет, рекомендую быстрее начинать отладку на штатном процессоре.

по поводу памяти, в любом случае какой-то код должен исполняться из ПЗУ контроллера
этот код может подгружать основную программу из вне и прочее,
но он есть, и внешней памятью вы вряд-ли повысити стойкость

ps 1986ВЕ91Т 7.И1-3Ус,7.И6-3Ус,7.И7-10х1Ус,7.С1-5Ус,7.С4-0,1х1Ус,7.К1-1К,7.К4-0,05х1К не так уж и плохо...

А какой вариант расположения исполняемого кода вам видится наиболее приемлемым, если предположить что требования по уровню стойкости конечного изделия выше, чем способна удовлетворить Flash ПЗУ в миландровском процессоре?
Go to the top of the page
 
+Quote Post
sevastianovd
сообщение Apr 2 2012, 01:20
Сообщение #15


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

Группа: Свой
Сообщений: 78
Регистрация: 8-04-08
Из: Омск
Пользователь №: 36 562



Цитата(Nix_86 @ Apr 1 2012, 16:27) *
А какой вариант расположения исполняемого кода вам видится наиболее приемлемым, если предположить что требования по уровню стойкости конечного изделия выше, чем способна удовлетворить Flash ПЗУ в миландровском процессоре?

требования по спецстойкости регламентируются на изделие, в данном случае на весь процессор. ни в одном ту отдельно память не выделена. если не лезет стойкость - либо защита в составе изделия - либо другая микросхема (правда другой нет sm.gif )
у нас тоже такой вопрос стоит только немного иначе - как обеспечить ВБР изделия 0.99 на 100 тыс. часов. пока необходимости внешней памяти нет. может быть будем переписывать flash раз в пятилетку...
Go to the top of the page
 
+Quote Post

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

 


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


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