|
Программная запись FLASH AT91SAM7S128 |
|
|
|
 |
Ответов
|
Apr 1 2009, 11:35
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Apr 1 2009, 14:26)  Способ потенциально небезопасный (iap_PageWrite не ROPI, размер его может и превысить 128 байт, стека может и не хватить и т.п.). Стоит ли ради экономии полутора сотен байт RAM так напрягаться? Стоит, т.к. лучше эту полусотню байт к стеку добавить. Напряжений особых я тоже не вижу, нехватит 128 байт - дайте больше, можно не в стеке выделять а из heap или из пакетного пула (который всегда толстый при использовании EMAC) т.д.. PS: iap_PageWrite в RAM не копируется, ибо незачем, копируется только iap_FlashCmdFunc. Пользователю предоставляется только iap_PageWrite(..) выполняемая из FLASH.
|
|
|
|
|
Apr 1 2009, 12:40
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Apr 1 2009, 15:35)  Стоит, т.к. лучше эту полусотню байт к стеку добавить. На стеке это все же просто мертвый груз. Цитата(defunct @ Apr 1 2009, 15:35)  PS: iap_PageWrite в RAM не копируется, ибо незачем, копируется только iap_FlashCmdFunc. Пользователю предоставляется только iap_PageWrite(..) выполняемая из FLASH. Да, не заметил как-то, пардон. Тогда тем более лучше воткнуть эту процедуру средствами линкера, т.к. это даже меньше полусотни байт.
|
|
|
|
|
Apr 1 2009, 12:55
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Apr 1 2009, 15:40)  На стеке это все же просто мертвый груз. Кто мертвый груз? Освободившуюся память можете отдать под что угодно, как вариант - увеличить объем стека. А Вы о чем? Цитата Тогда тем более лучше воткнуть эту процедуру средствами линкера, т.к. это даже меньше полусотни байт. Не понимаю чем может быть статическое резервирование RAM, лучше динамического распределения. Не стоит хранить в RAM код, который применяется раз в пятилетку.
|
|
|
|
|
Apr 1 2009, 13:10
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Apr 1 2009, 16:55)  Кто мертвый груз, вы о чем? О том, что эти несчастные 128 байт надо добавить к стеку заранее, хотя задействованы они будут "раз в пятилетку". Цитата(defunct @ Apr 1 2009, 16:55)  Не понимаю чем может быть статическое резервирование RAM, лучше динамического распределения. Не стоит хранить в RAM код, который применяется раз в пятилетку. Хотя бы тем, что не будет такого маразма при каждом вызове iap_ExecCmd: - выделили 128 байт на стеке - скопировали туда 128 байт с начала iap_FlashCmdFunc, не разбираясь, надо ли так много
|
|
|
|
Сообщений в этой теме
MiklPolikov Программная запись FLASH AT91SAM7S128 Dec 26 2008, 07:23 aaarrr Цитата(MiklPolikov @ Dec 26 2008, 10:23) ... Dec 26 2008, 08:34 MiklPolikov Цитата(aaarrr @ Dec 26 2008, 12:34) Тольк... Mar 30 2009, 14:55 aaarrr Вам нужно при помощи линкера разместить в RAM проц... Mar 30 2009, 15:18 MiklPolikov Цитата(aaarrr @ Mar 30 2009, 19:18) Вам н... Mar 31 2009, 14:00 Artem_Petrik Цитата(MiklPolikov @ Dec 26 2008, 10:23) ... Mar 30 2009, 15:32 Шурила Цитата(MiklPolikov @ Dec 26 2008, 09:23) ... Mar 31 2009, 00:56 Сергей Борщ Цитата(Шурила @ Mar 31 2009, 03:56) после... Mar 31 2009, 07:16 Harbour неплохо бы еще запрещать прерывания на момент запи... Mar 31 2009, 05:44 aaarrr В Keil'е оформляете процедуру примерно так:
Ко... Mar 31 2009, 14:07 defunct Не надо функции хранить в RAM. Функцию можно скопи... Apr 1 2009, 11:01     defunct Цитата(aaarrr @ Apr 1 2009, 16:10) О том,... Apr 1 2009, 14:30      aaarrr Цитата(defunct @ Apr 1 2009, 18:30) Но эт... Apr 1 2009, 15:11       defunct Цитата(aaarrr @ Apr 1 2009, 18:11) Нет, н... Apr 1 2009, 15:34        aaarrr Цитата(defunct @ Apr 1 2009, 19:34) Как г... Apr 1 2009, 15:42         defunct ЦитатаТолько скопировали то, что:
1. Сгенерировано... Apr 1 2009, 15:51          aaarrr Цитата(defunct @ Apr 1 2009, 19:51) Если ... Apr 1 2009, 15:55           defunct Цитата(aaarrr @ Apr 1 2009, 18:55) Этот ... Apr 1 2009, 17:00            aaarrr Цитата(defunct @ Apr 1 2009, 21:00) В отл... Apr 1 2009, 17:17             defunct Цитата(aaarrr @ Apr 1 2009, 20:17) а уж с... Apr 1 2009, 17:34              aaarrr Цитата(defunct @ Apr 1 2009, 21:34) Зачем... Apr 1 2009, 17:44               defunct Цитата(aaarrr @ Apr 1 2009, 20:44) Ваш пр... Apr 1 2009, 18:34                aaarrr Цитата(defunct @ Apr 1 2009, 22:34) Вашим... Apr 1 2009, 18:58                 defunct Цитата(aaarrr @ Apr 1 2009, 21:58) Делать... Apr 1 2009, 20:26                  aaarrr Цитата(defunct @ Apr 2 2009, 00:26) 1. На... Apr 1 2009, 20:51                   defunct Цитата(aaarrr @ Apr 1 2009, 23:51) Можно ... Apr 1 2009, 21:29                    aaarrr Цитата(defunct @ Apr 2 2009, 01:29) Или н... Apr 1 2009, 21:44                     defunct Цитата(aaarrr @ Apr 2 2009, 00:44) Перено... Apr 1 2009, 22:08                      aaarrr Цитата(defunct @ Apr 2 2009, 02:08) Зачем... Apr 1 2009, 22:39                       defunct Цитата(aaarrr @ Apr 2 2009, 01:39) Можно ... Apr 1 2009, 22:55 aaarrr Получается нечто вроде:
Кодvoid fcmd(U32 fcr... Apr 1 2009, 23:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|