|
Запуск кода из внешней памяти |
|
|
|
 |
Ответов
|
Sep 20 2017, 09:12
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Значит так. Процессор ваш имеет 128 Кбайт Flash и 48 Кбайт RAM на ядре Cortex-M. 1. Пишете загрузчик, который выполняется из внутренней Flash при старте. В нём инициализируете внешнюю память и копируете в неё из какой-то внешней флэшки основной код полностью. Затем передаёте управление основной программе Код #define APPLICATION_ADDRESS 0xXXXXXXXX typedef void(*pFunction)(void); uint32_t app_jump_address = *( uint32_t*) (APPLICATION_ADDRESS + 4); //извлекаем адрес перехода из вектора Reset pFunction Jump_To_Application = (pFunction)app_jump_address; __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS); //устанавливаем стек приложения Jump_To_Application(); 2. Основная программа ничего не знает о том что её откуда-то скопировали. Её задача только перенаправить на себя таблицу векторов прерываний. Код #pragma section = ".intvec" SCB->VTOR = (uint32_t) __section_begin(".intvec"); А стек я бы расположил всё же во внутренней RAM процессора. 48 кБ для стека это дофига вообще. Да и быстрее эта память обычно.
|
|
|
|
|
Sep 20 2017, 10:00
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Цитата(Forger @ Sep 20 2017, 12:21)  Добавлю свои пять копеек: код должен быть зашифрован, если изделие коммерческое. А оно коммерческое по-любому, т. к. прозвучало ключевое слово - "миландр"  Открытые исходники различных шифровальщиков не проблема. С таким ключевым словом обычно чтобы поиметь доступ к процессору надо в открытый космос выходить Цитата(jcxz @ Sep 20 2017, 12:42)  Ну вот.... У человека был шанс чему-то разобраться, научиться, может даже стать наконец-то настоящим программистом... и опять ему помешали.....  А зачем вам конкуренты?
|
|
|
|
|
Sep 20 2017, 11:15
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(jcxz @ Sep 20 2017, 13:22)  Недавно убила фраза друга (далёкого от программирования): "Ну ты же знаешь - самые сильные программисты в Индии, все самые сложные заказы отправляются туда."... вполне возможно так и есть у индийцев перед китайцами, русскими, французами и прочими зулусами есть одно преимущество - они англоязычные то есть они литературу просто читают а не читают и в голове переводят на свой язык. Цитата(VladislavS @ Sep 20 2017, 14:07)  Где у вас прошивка изначально то размещается? во внутренней flash Цитата(VladislavS) А потом вертолёты сами по целям лупят...  Делать надо как надо, а как не надо делать не надо. это с запасом, так как сам проект имеет большие объемы данных с которыми надо работать, а в 48 кБайтах они по любому не поместятся
|
|
|
|
|
Sep 20 2017, 11:31
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(inventor @ Sep 20 2017, 14:15)  в 48 кБайтах они по любому не поместятся Чудовищные глобальные или статически массивы - во внешней ОЗУ, это понятно. Еще понимаю разместить во внешней ОЗУ кучу (heap). Но что за проект такой, где прям нужен такой чумовой стек > 48кБ да еще и в относительно медленной памяти?!
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 20 2017, 12:47
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(Forger @ Sep 20 2017, 14:31)  Но что за проект такой, где прям нужен такой чумовой стек > 48кБ да еще и в относительно медленной памяти?! мне он не нужен такого размера, просто с этой памятью я достаточно намучался пока она заработала неочевидная ошибка и плохо определяемая - не затактировал всего одну ногу которая была на отличной от других пинов клоке и нашел ошибку, только когда начал с осциллографом прозанивать каждую ногу. ну а как разобрался как ее правильно запускать - просто решил ее использовать с пользой.
|
|
|
|
Сообщений в этой теме
inventor Запуск кода из внешней памяти Sep 19 2017, 16:18 dimka76 Вы даже марку контроллера не упомянули.
А так вам... Sep 19 2017, 18:28 Obam Ещё "бензинчику" добавлю (; загрузка в R... Sep 19 2017, 19:38 golf2109 Цитата(Obam @ Sep 19 2017, 21:38) Ещё ... Sep 20 2017, 01:24 inventor Цитата(Obam @ Sep 19 2017, 22:38) Ещё ... Sep 20 2017, 06:53  Forger Цитата(inventor @ Sep 20 2017, 09:53) ну ... Sep 20 2017, 06:58  Integro Цитата(inventor @ Sep 20 2017, 09:53) RAM... Sep 20 2017, 07:04   inventor Цитата(Integro @ Sep 20 2017, 10:04) мила... Sep 20 2017, 07:15    Integro Цитата(inventor @ Sep 20 2017, 10:15) эта... Sep 20 2017, 07:24 inventor неицинициализированные данные я там могу расположи... Sep 20 2017, 06:58 Forger Цитата(inventor @ Sep 20 2017, 09:58) 198... Sep 20 2017, 07:02 Forger Я бы не стал мудрить с полным переносом кода во вн... Sep 20 2017, 07:17 scifi Ещё интересный вопрос, где хранится код программы ... Sep 20 2017, 07:40 Forger Для толстых проектов обычно ставят внешнюю FLASH (... Sep 20 2017, 07:48  scifi Цитата(Forger @ Sep 20 2017, 10:48) Для т... Sep 20 2017, 07:50 inventor Цитата(scifi @ Sep 20 2017, 10:40) Кстати... Sep 20 2017, 07:50  scifi Цитата(inventor @ Sep 20 2017, 10:50) это... Sep 20 2017, 07:59   jcxz Цитата(scifi @ Sep 20 2017, 14:59) И за ч... Sep 20 2017, 08:33    inventor Цитата(jcxz @ Sep 20 2017, 11:33) Автор в... Sep 20 2017, 08:40     Forger Цитата(inventor @ Sep 20 2017, 11:40) ну ... Sep 20 2017, 09:05 Forger Цитата(VladislavS @ Sep 20 2017, 12:12) В... Sep 20 2017, 09:21   Forger Цитата(VladislavS @ Sep 20 2017, 13:00) С... Sep 20 2017, 10:07       aaarrr Цитата(inventor @ Sep 20 2017, 15:47) про... Sep 20 2017, 13:07       Forger Цитата(inventor @ Sep 20 2017, 15:47) мне... Sep 20 2017, 13:11        inventor Цитата(jcxz @ Sep 20 2017, 19:52) Работод... Sep 20 2017, 18:27     VladislavS Цитата(inventor @ Sep 20 2017, 14:15) во ... Sep 20 2017, 12:35     Obam Цитата(inventor @ Sep 20 2017, 15:15) у и... Sep 20 2017, 13:09 inventor Цитата(VladislavS @ Sep 20 2017, 12:12) З... Sep 20 2017, 11:02  VladislavS Цитата(inventor @ Sep 20 2017, 14:02) щас... Sep 20 2017, 11:07 inventor ну вобщем разобрался
последний вопрос:
ЦитатаWarn... Sep 20 2017, 13:50 VladislavS Цитата(inventor @ Sep 20 2017, 16:50) в ч... Sep 20 2017, 13:55 aaarrr Цитата(inventor @ Sep 20 2017, 16:50) то ... Sep 20 2017, 13:55  inventor Цитата(aaarrr @ Sep 20 2017, 16:55) Вы же... Sep 20 2017, 14:00   Forger Цитата(inventor @ Sep 20 2017, 16:58) так... Sep 20 2017, 14:06    inventor Цитата(Forger @ Sep 20 2017, 17:06) Назов... Sep 20 2017, 14:26     Forger Цитата(inventor @ Sep 20 2017, 17:26) это... Sep 20 2017, 14:34 Forger Цитатато есть насколько это критично?
В этом проек... Sep 20 2017, 13:57 Obam Цитата(inventor @ Sep 20 2017, 17:50) про... Sep 20 2017, 19:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|