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

 
 
> Самомодифицирующийся код в экосистеме Cortex-M., есть ли право на жизнь?
jcxz
сообщение Jun 28 2018, 22:54
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Есть мысль использовать самомодифицирующийся код для оптимизации решения одной задачи.
Именно самомодифицирующийся - программа строит часть самой себя по некоему алгоритму, а не просто копирует куски кода из одной области памяти в другую.
И вот я что-то не смог вспомнить чтобы здесь на форуме вообще когда-то поднималась эта тема.
Кто-то вообще использует такой код на ARM-ах в своих проектах? Просто интересно... rolleyes.gif

PS: И пожалуйста - без религиозной нетерпимости.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Arlleex
сообщение Jun 30 2018, 15:09
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



jcxz, а зачем тут это? Вы сначала загружаете адрес интересуемой переменной из таблицы, потом загружаете значение переменной по этому адресу, и сохраняете в dst с постинкрементом, это понятно. А выделенное то зачем? Вы что-то говорили про перемежение инструкций для удаления штрафов LDR/STR. Могли бы озвучить, в чем там проблема?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 30 2018, 19:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Arlleex @ Jun 30 2018, 18:09) *
А выделенное то зачем? Вы что-то говорили про перемежение инструкций для удаления штрафов LDR/STR. Могли бы озвучить, в чем там проблема?

Если выполнить просто:
LDR R2, [R1, #4]
LDR R2, [R2]

то вторая команда выполнится за 2 такта. Если же между ними вставить любую другую команду, не модифицирующую R2, то LDR R2, [R2] должна выполниться за 1 такт.
Это следует из фразы:
LDR [any] are pipelined when possible. This means that if the next instruction is an LDR or STR, and the destination of the first LDR is not used to compute the address for the next instruction, then one cycle is removed from the cost of the next instruction.
из "ARM® Cortex®‑M4 Processor Technical Reference Manual" раздел "3.3.3 Load/store timings".
Поэтому мой генератор кода использует в качестве рабочих два регистра - R2 и R3 с перемежением, чтобы убрать такие штрафы.

Цитата(VladislavS @ Jun 30 2018, 21:33) *
Зачем компилятор R2 и R3 чередует?

Здесь не знаю. А для какого это ядра?
Мой генератор кода заточен для Cortex-M4. У него я не знаю необходимости в таком перемежении.
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Jun 30 2018, 19:35
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Цитата(jcxz @ Jun 30 2018, 22:31) *
Здесь не знаю. А для какого это ядра?
Мой генератор кода заточен для Cortex-M4. У него я не знаю необходимости в таком перемежении.

Тоже Cortex-M4, если точнее, то STM32F427.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   Самомодифицирующийся код в экосистеме Cortex-M.   Jun 28 2018, 22:54
- - aaarrr   Цитата(jcxz @ Jun 29 2018, 01:54) И вот я...   Jun 28 2018, 23:01
- - AVI-crak   Цитата(jcxz @ Jun 29 2018, 04:54) Просто ...   Jun 28 2018, 23:23
|- - aaarrr   Цитата(AVI-crak @ Jun 29 2018, 02:23...   Jun 28 2018, 23:31
||- - AVI-crak   Не предполагает. Любая перетасовка программного ко...   Jun 29 2018, 00:11
|- - Николай Семёнович   Цитата(AVI-crak @ Jun 29 2018, 02:23...   Jun 29 2018, 03:22
|- - jcxz   Цитата(AVI-crak @ Jun 29 2018, 02:23...   Jun 29 2018, 04:20
- - aaarrr   Давайте сначала: Цитата(AVI-crak @ Jun ...   Jun 29 2018, 00:32
|- - AVI-crak   Цитата(aaarrr @ Jun 29 2018, 06:32) О как...   Jun 29 2018, 04:47
|- - jcxz   Цитата(AVI-crak @ Jun 29 2018, 07:36...   Jun 29 2018, 04:51
||- - AVI-crak   Цитата(jcxz @ Jun 29 2018, 10:51) Вы о чё...   Jul 1 2018, 15:22
||- - VladislavS   Цитата(AVI-crak @ Jul 1 2018, 18:22)...   Jul 1 2018, 16:25
||- - jcxz   Цитата(VladislavS @ Jul 1 2018, 19:25) Пр...   Jul 2 2018, 16:12
||- - AVI-crak   Цитата(jcxz @ Jul 2 2018, 22:12) Конечно ...   Jul 2 2018, 20:46
||- - Arlleex   Цитата(AVI-crak @ Jul 3 2018, 00:46)...   Jul 3 2018, 04:44
||- - AVI-crak   Цитата(Arlleex @ Jul 3 2018, 10:44) А отк...   Jul 3 2018, 18:38
|- - aaarrr   Цитата(AVI-crak @ Jun 29 2018, 07:47...   Jun 29 2018, 07:24
- - halfdoom   Цитата(jcxz @ Jun 29 2018, 01:54) Есть мы...   Jun 29 2018, 03:29
- - AlexandrY   Цитата(jcxz @ Jun 29 2018, 01:54) PS: И п...   Jun 29 2018, 05:47
|- - jcxz   Цитата(AlexandrY @ Jun 29 2018, 08:47) Ил...   Jun 29 2018, 06:56
|- - AlexandrY   Цитата(jcxz @ Jun 29 2018, 09:56) Я уже в...   Jun 29 2018, 07:00
|- - jcxz   Цитата(AlexandrY @ Jun 29 2018, 10:00) То...   Jun 29 2018, 07:03
||- - AlexandrY   Цитата(jcxz @ Jun 29 2018, 10:03) Ну хоро...   Jun 29 2018, 07:05
|- - Николай Семёнович   Цитата(AlexandrY @ Jun 29 2018, 10:00) То...   Jun 29 2018, 16:00
|- - jcxz   Цитата(Николай Семёнович @ Jun 29 2018, 19...   Jun 29 2018, 17:11
|- - Arlleex   Цитата(jcxz @ Jun 29 2018, 20:11) Блин, к...   Jun 29 2018, 17:18
|- - jcxz   Цитата(Arlleex @ Jun 29 2018, 20:18) О ре...   Jun 29 2018, 17:23
|- - Arlleex   Цитата(jcxz @ Jun 29 2018, 20:23) Всего в...   Jun 29 2018, 17:36
|- - adnega   RE: Самомодифицирующийся код в экосистеме Cortex-M.   Jun 29 2018, 21:21
|- - jcxz   Цитата(adnega @ Jun 30 2018, 00:21) Прове...   Jun 30 2018, 00:22
|- - adnega   Цитата(jcxz @ Jun 30 2018, 03:22) мммм......   Jun 30 2018, 06:41
|- - jcxz   Цитата(adnega @ Jun 30 2018, 09:41) А что...   Jun 30 2018, 07:21
|- - adnega   Цитата(jcxz @ Jun 30 2018, 10:21) Да я уж...   Jun 30 2018, 08:59
|- - AlexandrY   Цитата(adnega @ Jun 30 2018, 11:59) Кста,...   Jun 30 2018, 10:09
|- - jcxz   Цитата(adnega @ Jun 30 2018, 11:59) Покаж...   Jun 30 2018, 11:56
|- - adnega   Цитата(jcxz @ Jun 30 2018, 14:56) Да, как...   Jun 30 2018, 12:12
||- - jcxz   Цитата(adnega @ Jun 30 2018, 15:12) Может...   Jun 30 2018, 13:30
||- - AlexandrY   Цитата(jcxz @ Jun 30 2018, 16:30) Ну-ну. ...   Jun 30 2018, 13:39
||- - jcxz   Цитата(AlexandrY @ Jun 30 2018, 16:39) И ...   Jun 30 2018, 13:56
||- - AlexandrY   Цитата(jcxz @ Jun 30 2018, 16:56) В то вр...   Jun 30 2018, 14:43
||- - jcxz   Цитата(AlexandrY @ Jun 30 2018, 17:43) Та...   Jun 30 2018, 19:41
||- - AlexandrY   Цитата(jcxz @ Jun 30 2018, 22:41) Ваш пос...   Jul 1 2018, 07:22
|- - AlexandrY   Цитата(jcxz @ Jun 30 2018, 14:56) Да прич...   Jun 30 2018, 13:17
- - Serge V Iz   Использовал хранимые в ОЗУ участки кода, которые з...   Jun 29 2018, 07:35
|- - jcxz   Цитата(Serge V Iz @ Jun 29 2018, 10:35) И...   Jun 29 2018, 08:43
- - AVR   Цитата(jcxz @ Jun 29 2018, 01:54) Есть мы...   Jun 29 2018, 07:43
|- - a123-flex   Цитата(AVR @ Jun 29 2018, 10:43) Оптимиза...   Jun 29 2018, 15:05
- - RadiatoR   Вопрос к ТС - а каков предполагаемый размер генери...   Jun 29 2018, 07:54
|- - _4afc_   Мой опыт показывает что оптимизация по скорости са...   Jun 29 2018, 08:23
|- - jcxz   Цитата(RadiatoR @ Jun 29 2018, 10:54) Во...   Jun 29 2018, 09:08
|- - _4afc_   Цитата(jcxz @ Jun 29 2018, 13:08) А тепер...   Jun 29 2018, 09:53
- - VladislavS   _4afc_, не стоит быть столь категоричным. Если гов...   Jun 29 2018, 08:38
- - Kabdim   Имхо сейчас время такое что проще взять более мощн...   Jun 29 2018, 08:44
- - Arlleex   Интересная тема для меня, тема СМК. Ни разу не при...   Jun 29 2018, 13:08
|- - RadiatoR   Цитата(Arlleex @ Jun 29 2018, 16:08) 2. Н...   Jun 29 2018, 13:23
|- - adnega   Цитата(Arlleex @ Jun 29 2018, 16:08) 1. П...   Jun 29 2018, 16:03
||- - Arlleex   Цитата(RadiatoR @ Jun 29 2018, 16:23) Та...   Jun 29 2018, 16:18
||- - adnega   Цитата(Arlleex @ Jun 29 2018, 19:18) Наде...   Jun 29 2018, 16:35
||- - Arlleex   Цитата(adnega @ Jun 29 2018, 19:35) Услов...   Jun 29 2018, 16:56
|- - jcxz   Цитата(Arlleex @ Jun 29 2018, 16:08) Прив...   Jun 29 2018, 16:56
||- - AlexandrY   Цитата(jcxz @ Jun 29 2018, 19:56) ... if ...   Jun 29 2018, 17:44
|- - kolobok0   Цитата(Arlleex @ Jun 29 2018, 16:08) Инте...   Jun 29 2018, 17:46
- - a123-flex   Цитата(jcxz @ Jun 29 2018, 01:54) Есть мы...   Jun 29 2018, 13:27
|- - twix   Цитата(a123-flex @ Jun 29 2018, 14:2...   Jun 29 2018, 14:35
- - Serge V Iz   Кстати, а какие есть основания предполагать, что р...   Jun 29 2018, 16:11
- - Arlleex   Цитата(AlexandrY @ Jun 29 2018, 20:44) А ...   Jun 29 2018, 18:19
- - AVI-crak   Цитата(jcxz @ Jun 29 2018, 04:54) Есть мы...   Jun 30 2018, 11:24
|- - Arlleex   Цитата(jcxz @ Jun 30 2018, 23:31) Поэтому...   Jun 30 2018, 19:45
|- - jcxz   Цитата(Arlleex @ Jun 30 2018, 22:45) По т...   Jun 30 2018, 19:54
- - VladislavS   Недавно в другой теме проскакивал вот такой код. П...   Jun 30 2018, 18:33
- - Arlleex   Кстати, решил почитать внимательнее 3.3.2. Load/st...   Jul 1 2018, 10:03
- - jcxz   Цитата(Arlleex @ Jul 1 2018, 13:03) Что э...   Jul 1 2018, 12:00


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

 


RSS Текстовая версия Сейчас: 7th August 2025 - 07:36
Рейтинг@Mail.ru


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