Easyelectronics.ru

Электроника для всех
Текущее время: 23 янв 2021, 00:48

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 16 ноя 2020, 06:21 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 фев 2011, 21:32
Сообщения: 163
MasterElectric писал(а):
Так ты же ее сам в ОЗУ и переносишь и ты не знаешь ее адрес?

Код:
  unsigned long sram_addr=0x2000e000;
  ...
  while(lenth){
    addr+=0x100;
    spi_load_sector(addr);
    for(i=0;i<256;i++){
      *(unsigned char *) (sram_addr) = spi_buffer[(unsigned char)i];// Тут, думаю, Вы поймёте, о чем речь

Выше уже писал. Память выделена под функции, адреса знаю, но они меняются(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 16 ноя 2020, 06:39 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 фев 2011, 21:32
Сообщения: 163
VladislavS писал(а):
Это вы над нами издеваетесь. Хотя, оно и понятно. Если бы вы могли понятно описать проблему, то знали бы как её решить. Правильный вопрос - половина ответа.

Есть у меня такая проблема, да, не умею объяснять. Я потому и выложил кучу скриншотов, куски кода, хотя подозревал, что за бесплатно никто вникать не станет. Вопрос-то не о ногодрыге уже - посложнее.
Яндекс, кстати, серьезно хуже гугла в плане поиска на технические темы.
Ваш вариант понятен, но влечёт за собой большое количество перезаписей таблицы во flash МК на этапе отладки, чего я, как раз, стараюсь избежать. И после каждой правки кода придётся дебагом смотреть адрес точки входа, руками править запись в таблице, что, согласитесь, не совсем удобно.
Собственно вопрос, думаю, можно снимать. Мало-мальское решение я нашёл, пусть и некрасивое. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 16 ноя 2020, 10:01 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1657
Не надо ничего руками делать. Линкер сам заполнит структуру так же как делает это с таблицей векторов прерываний. Зачем спрашивать совета, если не следовать ему?

alm604 писал(а):
но влечёт за собой большое количество перезаписей таблицы во flash МК на этапе отладки, чего я, как раз, стараюсь избежать.
Ваше рабочее время стоит дешевле flash?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 16 ноя 2020, 11:02 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 фев 2011, 21:32
Сообщения: 163
Видимо я так и не понял, как сделать то, что Вы посоветовали. Этот проект не для зарабатывания денег. В случае с хобби вопросы денег и времени вообще малоуместны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 16 ноя 2020, 11:15 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2900
Откуда: Санкт-Петербург
А как вы создаёте файл и загружаете его в RAM?
Собираете несколько версий программы, различающиеся одной функцией, и вытаскиваете её из бинарника для закачки в МК?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 17 ноя 2020, 12:06 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 551
Откуда: Киев
Как по мне проще тогда взять камушек с QSPI, например H750 F412 F446 они не на много дороже F103.
alm604 мне вообще интересно как вы узнаете размер функции, нормальных средств для этого нет. И как записываете внешнюю флеш.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 17 ноя 2020, 16:56 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 фев 2011, 21:32
Сообщения: 163
aamonster писал(а):
Собираете несколько версий программы, различающиеся одной функцией, и вытаскиваете её из бинарника для закачки в МК?

Совершенно верно. Ее же так и так отлаживать. Размер функции я могу посмотреть в map-файле. Адрес начала известен. Затем вызываю функцию save(char *name, int length), которая ищет свободный участок в памяти длиной с эту программу и сохраняет. Думаю можно попробовать и по UART грузить для отладки, но пока не пробовал. Не получилось у меня прикрутить и spifs. Может плохо старался


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 24 ноя 2020, 14:26 
Заглядывает иногда

Зарегистрирован: 08 фев 2012, 15:28
Сообщения: 115
Это переизобретение так называемых "оверлеев"? Может, использовать что-то уже готовое на эту тему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RAM Executing
СообщениеДобавлено: 24 ноя 2020, 18:02 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 фев 2011, 21:32
Сообщения: 163
Спасибо. Не знал, что оно так называется, хотя гуглил кучу времени на этот предмет. Посмотрю. Похоже, это именно то, что мне нужно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB