|
|
  |
Потребление ядра, SAM7SE |
|
|
|
Aug 25 2008, 21:41
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
По поводу потребления - Note под табличкой Power Consumption for Different Modes: Цитата Low power consumption figures stated above cannot be guaranteed when accesing the Flash in Ultra Low Power mode. In order to meet given low power consumption figures, it is recommended to either stop the processor or jump to SRAM. Цитата если просто скопировать код из флешь в статику, то все абсолютные адреса в коде станут недействительными, а ежели размещать функции в SRAMe то при заливке они туда зальются, но при выключении питания сотрутся...Как быть? Поручить это дело линкеру - прописать нужные функции в соответствующих секциях и разместить в RAM. Конкретная реализация зависит от компилятора.
|
|
|
|
|
Aug 26 2008, 06:23
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Как только код загружается во Флешь (или если к ней идет обращение из программы) ток возрастает до 1.6...2.0 мА, т.е в 40 раз!!! Вообще, конечно, весьма странно. Почему, например, AVR, исполняя программу из флеша, прекрасно справляется с микроамперными токами потребления... Что-то, как говорится, ниасилили...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 26 2008, 08:12
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(Rst7 @ Aug 26 2008, 10:23)  Вообще, конечно, весьма странно. Почему, например, AVR, исполняя программу из флеша, прекрасно справляется с микроамперными токами потребления... Что-то, как говорится, ниасилили... да проверял тем что вставил ассемблерный код, который просто в цикле читает по опред.адресу. Если этот адрес входит в область RAM- то все ок, а если он приходится на область FLASH -ток потребления сразу подскакивает. 2 all: проблема решилась вставкой ключевого слова __rumfunc перед определением функции. Теперь функция сохраняется во флешь, а при стартапе копируется в RAM, где потом собсно и выполняется
|
|
|
|
|
Aug 26 2008, 10:05
|
Частый гость
 
Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415

|
Цитата(Сергей Борщ @ Aug 26 2008, 15:54)  Выворачивался, терпел пытки, но название компилятора не выдал __ramfunc в IAR, а в gcc __attribute__ ((section (".ramfunc"))) В скриптах атмеловских приметов для gcc секция .ramfunc уже определена.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|