|
STM32F: Функция в RAM |
|
|
|
Apr 21 2016, 07:46
|
Частый гость
 
Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612

|
Раньше я много работал с серией микроконтроллеров C2000 от Техаса. Там был механизм (CCStudio), позволяющий разместить любую функцию в RAM. Это позволяло существенно ускорить выполнение критического кода, а также избежать остановки выполнения программы в процессе записи или стирания Flash. Механизм примерно такой: 1. Для информирования линкера создавалась специальная секция: размещение во Flash, запуск из RAM. 2. При компоновке линкер все адреса вызовов модифицирует так, как будто этот код уже располагается в RAM. 3. В процессе инициализации эта секция копируется в RAM стандартно, по аналогии с инициализируемыми переменными. 4. При выполнении, при обращении к функции происходит переход по адресу в RAM. К сожалению для STM32 я пока не обнаружил аналогичного механизма. Больше всего меня смущает не быстродействие (конвейер в STM32 достаточно хорош), а проблема, связанная со стиранием больших секторов. Например в STM32F4 время, на которое код зависает при выполнении из Flash, может достигать сотен миллисекунд. Конечно можно весь код разместить в RAM, но не всегда это возможно из соображений размера, да и защита от несанкционированного копирования кода в этом случае имеет проблемы. Хотелось бы более красивое решение. Есть мысли по этому поводу? Может я просто не нашёл нужный документ или пример?
|
|
|
|
|
 |
Сообщений в этой теме
amiller STM32F: Функция в RAM Apr 21 2016, 07:46 DmitryM Цитата(amiller @ Apr 21 2016, 11:46)
дл... Apr 21 2016, 08:02 jcxz Цитата(amiller @ Apr 21 2016, 13:46) К со... Apr 21 2016, 08:04 amiller Да этот важный момент я упустил. среда программиро... Apr 21 2016, 08:14 IV_K Цитата(amiller @ Apr 21 2016, 11:14) Да э... Apr 21 2016, 08:48 SSerge Цитата(amiller @ Apr 21 2016, 15:14) Да э... Apr 21 2016, 09:15 scifi Цитата(amiller @ Apr 21 2016, 10:46) Боль... Apr 21 2016, 09:04 amiller Цитата(scifi @ Apr 21 2016, 12:04) Зависи... Apr 21 2016, 10:03  jcxz Цитата(amiller @ Apr 21 2016, 16:03) Устр... Apr 21 2016, 10:14  scifi Цитата(amiller @ Apr 21 2016, 13:03) Кста... Apr 21 2016, 10:15   amiller Цитата(scifi @ Apr 21 2016, 13:15) Кстати... Apr 21 2016, 10:56    scifi Цитата(amiller @ Apr 21 2016, 13:56) Внеш... Apr 21 2016, 11:04    jcxz Цитата(amiller @ Apr 21 2016, 16:56) Кста... Apr 21 2016, 11:42     amiller Цитата(jcxz @ Apr 21 2016, 14:42) Пинайте... Apr 21 2016, 12:14      jcxz Цитата(amiller @ Apr 21 2016, 18:14) Дело... Apr 21 2016, 16:00  SSerge Цитата(amiller @ Apr 21 2016, 17:03) Кста... Apr 21 2016, 10:43
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|