Easyelectronics.ru

Электроника для всех
Текущее время: 23 фев 2018, 11:41

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 22 ] 
Автор Сообщение
 Заголовок сообщения: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 12:38 
Заглядывает иногда

Зарегистрирован: 19 дек 2017, 08:12
Сообщения: 121
Откуда: SPb
(Пока чайник) У STM8 непривычно большой EEPROM - вполне можно и программу впихнуть. Сможет ли она там выполняться ? На первый взгляд - не вижу препятствий. А на самом деле ?
Сам проверить в ближайшие пару дней не смогу, за это время меня любопытство сожрет :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 13:03 
Заглядывает иногда

Зарегистрирован: 28 фев 2013, 16:13
Сообщения: 44
Откуда: Нижний Новгород
А зачем? не секрет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 13:39 
Заглядывает иногда

Зарегистрирован: 19 дек 2017, 08:12
Сообщения: 121
Откуда: SPb
Это уже второй вопрос. Придумать можно. Ну например - у нее вроде как циклов записи побольше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 14:49 
Заглядывает иногда

Зарегистрирован: 28 фев 2013, 16:13
Сообщения: 44
Откуда: Нижний Новгород
Чтобы программу выполнить ее надо 1 раз записать. Если уж совсем извратиться и переписывать программу на лету из загрузчика, например, можно из RAM выполнять. А у EEPROM со временем чтения и записи совсем грустно :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 16:29 
Заглядывает иногда

Зарегистрирован: 19 дек 2017, 08:12
Сообщения: 121
Откуда: SPb
"Папа может, но бык лучше" - знаю :)
Можно, конечно, понапрягать мозги и придумать какое-нибудь полезное применение. Но это какое-то извращение - получается, что я должен придумывать основание для задавания вопроса, а если основание не придумал - то и вопрос задавать нельзя, моветон-с :)
А мне ПРОСТО ИНТЕРЕСНО - может ли процессор извлекать оттуда инструкции, или на это установлен некий запрет. Чтоб представлять возможности. Чтоб если вдруг нужда возникнет - уже знать можно или нельзя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 19:26 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 1155
У STM32 возможно исполнение кода из встроенной и внешней SRAM.
Вообще же, исполнение кода из внешних носителей - это удел процессоров, а не микроконтроллеров. В частности, в том числе и этим МК отличается от процессора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 20:59 
Заглядывает иногда

Зарегистрирован: 19 дек 2017, 08:12
Сообщения: 121
Откуда: SPb
Это, безусловно, очень ценная информацмя, вот только какое отношение она имеет к вопросу ? ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 20 дек 2017, 23:27 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:48
Сообщения: 3686
Откуда: Красногорск МО
Из оперативки выполнять код на стм8 можно, память линейная, значит должно работать и из епром.

_________________
От Парижа до Находки с водкой лучше, чем без водки!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 22 дек 2017, 01:31 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1542
Откуда: Киев
по моему мнению - нельзя:
Вложение:
stm8.PNG
stm8.PNG [ 158.01 Кб | Просмотров: 2114 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 22 дек 2017, 02:26 
Заглядывает иногда

Зарегистрирован: 19 дек 2017, 08:12
Сообщения: 121
Откуда: SPb
Черт его знает, с одной стороны - вроде как прямое указание "не может". С другой - табличка мне кажется не вполне корректной, и R/W могло в ней появиться просто потому что автор "по умолчанию" предполагал, что никому в голову не придет пытаться оттуда код выполнять :)
Поставил бы кто-нибудь эксперимент ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 22 дек 2017, 02:49 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3179
Откуда: Кемеровская область, Киселевск
Ну написано же Access from core, доступ из ядра, таблица поясняет какие действия может выполнять ядро.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 22 дек 2017, 05:31 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 4859
это у какого stm8 непривычно много eeprom?
все которые рассматривал у них RAM больше чем EEPROM
если уж так нужен динамично созданный или загруженный откуда то код то есть RAM
ну а табличка по моему тоже конкретно говорит, что из EEPROM низя


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 24 дек 2017, 01:48 
Только пришел

Зарегистрирован: 24 дек 2017, 01:38
Сообщения: 6
Прямое выполнение кода из EEPROM невозможно:
https://github.com/TG9541/stm8ef/wiki/S ... mory-areas


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 24 дек 2017, 03:47 
Старожил
Аватара пользователя

Зарегистрирован: 14 апр 2014, 11:06
Сообщения: 1073
Откуда: Курск
А тут вот говорят можно, но будет медленно
https://www.compel.ru/lib/ne/2013/8/8-s ... -srede-iar
Цитата:
Для того, чтобы многобайтные команды и данные поступали в ядро без задержек, реализован 3-ступенчатый конвейер. Команды вычитываются из памяти по 32-битной шине, соответственно, за 1 обращение — 2 команды. Код можно выполнять так же из памяти данных, но, так как шина к памяти данных 8-битная, то конвейер будет заполняться гораздо медленнее и производительность будет ниже, однако о такой возможности нужно знать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 24 дек 2017, 04:31 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 209
Откуда: Новый Уренгой
Камень какого-то хрена сбрасывается после установки Program Counter на EEPROM $4000
тоесть асм командой jp eeprom_addr в PC записывается 0x4000 и всё, дальше ресет, а ждал инкремента.
в еепром предварительно скопирован опкод из флеш команды bcpl PA_ODR, #2 - 4 байта: 90 14 50 00
90 - BCPL; 14 - (0x10 & n*2); 0x5000 - PA_ODR в STM8S003F3P6
тоесть всё правильно, но не работает
Код:
eeprom_addr   EQU   $4000

   mov      FLASH_DUKR,   #$AE
   mov      FLASH_DUKR,   #$56
   btjf   FLASH_IAPSR,   #3,   * ; ждем eeprom_unlock
   
   ldw   x,   #flash_addr
   ldw   y,   #eeprom_addr
copy_to_eeprom   
   ld a, (x)    
   ld (y), a
   btjf FLASH_IAPSR, #2, *   ;   обождем пока запишется
   incw   x
   incw   y
   cpw x,   #flash_end_addr
   jrule copy_to_eeprom   

   jp   eeprom_addr
   
flash_addr
   bcpl PA_ODR, #2
flash_end_addr

Теперь интересно, почему камень ресетится?

_________________
vk.com/casusnur


Последний раз редактировалось casus 25 дек 2017, 13:41, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 26 дек 2017, 15:58 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 209
Откуда: Новый Уренгой
может вместо jp eeprom_addr
попробовать call eeprom_addr и ret?

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 26 дек 2017, 20:28 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4642
Cthulhu, с каких это пор память данных стала означать еепром?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 27 дек 2017, 20:00 
Только пришел

Зарегистрирован: 24 дек 2017, 01:38
Сообщения: 6
casus писал(а):
может вместо jp eeprom_addr
попробовать call eeprom_addr и ret?

Какая разница? CALL представляет собой PUSH и JMP. Просто проверьте URL выше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 27 дек 2017, 22:54 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 209
Откуда: Новый Уренгой
Я читал ссылку, но там просто написано что это невозможно, т.к. происходит сброс, и не написано почему. Почему идет сброс?

И смотрим тут, с тойже ссылки
Цитата:
For writing code where the exact execution time is crucial the following approaches can be taken:

for coarse granularity (e.g. 100µs) use a timer
copy (small) routines to RAM or EEPROM for execution
in Flash, unroll loops, or align code carefully on 32bit boundaries

Кто не вкурсе написано, чтобы быстрее выполнить код его можно скопировать в еепром

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 27 дек 2017, 23:22 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4642
Casus, ссылку плиз.
Вообще-то еппром периферия, может там имелось ввиду скопировать исполняемый код из еепром в RAM?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 27 дек 2017, 23:38 
Старожил

Зарегистрирован: 23 дек 2012, 16:46
Сообщения: 209
Откуда: Новый Уренгой
ссылка
Namachmal писал(а):
Прямое выполнение кода из EEPROM невозможно:
https://github.com/TG9541/stm8ef/wiki/S ... mory-areas

Цитата:
Вообще-то еппром периферия, может там имелось ввиду скопировать исполняемый код из еепром в RAM?
Всё кроме ALU периферия.
Цитата:
to RAM or EEPROM for execution
Дословно - в озу или еепром для выполнения

_________________
vk.com/casusnur


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исполнение кода из EEPROM - возможно ?
СообщениеДобавлено: 28 дек 2017, 18:04 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4642
Советую бросить *ней заниматься, тем более по ссылке SDCC...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ] 

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


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

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


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

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

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