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

 
 
 
Reply to this topicStart new topic
> Потребление ядра, SAM7SE
Alexashka
сообщение Aug 25 2008, 21:24
Сообщение #1


Практикующий маг
******

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



На днях выяснял насколько МАЛО потребляет контроллер (AT91SAM7SE512) и от чего зависит потребление и получил такую странную зависимость (извиняюсь если тема уже поднималась,все посты прочитать не успел). Ну с потреблением по 3.3 более-менее понятно- это практически ток по линиям ввода-вывода. А вот с ядром странность. При тактировании ядра от 32кГц генератора потребление 50мкА если код выполняется из SRAM. Как только код загружается во Флешь (или если к ней идет обращение из программы) ток возрастает до 1.6...2.0 мА, т.е в 40 раз!!! Неужели столько есть контролеер флешки??
Поскольку такое потребление никак не устраивает появилась мысль заливать программу во флешь, после чего она копирует себя (или часть себя) в SRAM, где собстно и выполняется.
Хотя не совсем понятно -если просто скопировать код из флешь в статику, то все абсолютные адреса в коде станут недействительными, а ежели размещать функции в SRAMe то при заливке они туда зальются, но при выключении питания сотрутся...Как быть?
smile3046.gif
Посоветуйте!!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 25 2008, 21:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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. Конкретная реализация зависит от компилятора.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Aug 26 2008, 06:09
Сообщение #3


Практикующий маг
******

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



Цитата(aaarrr @ Aug 26 2008, 01:41) *
По поводу потребления - Note под табличкой Power Consumption for Different Modes:
Поручить это дело линкеру - прописать нужные функции в соответствующих секциях и разместить в RAM. Конкретная реализация зависит от компилятора.


\чтож если вы говорите что это реально- попробую. smile.gif

А про табличку -это многое объясняет biggrin.gif
И почему все ляпы и узкие места производители прописывают гденибудь внизу страницы мелким шрифтом ? biggrin.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 26 2008, 06:23
Сообщение #4


Йа моск ;)
******

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



Цитата
Как только код загружается во Флешь (или если к ней идет обращение из программы) ток возрастает до 1.6...2.0 мА, т.е в 40 раз!!!


Вообще, конечно, весьма странно. Почему, например, AVR, исполняя программу из флеша, прекрасно справляется с микроамперными токами потребления... Что-то, как говорится, ниасилили...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Aug 26 2008, 08:12
Сообщение #5


Практикующий маг
******

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



Цитата(Rst7 @ Aug 26 2008, 10:23) *
Вообще, конечно, весьма странно. Почему, например, AVR, исполняя программу из флеша, прекрасно справляется с микроамперными токами потребления... Что-то, как говорится, ниасилили...


да проверял тем что вставил ассемблерный код, который просто в цикле читает по опред.адресу. Если этот адрес входит в область RAM- то все ок, а если он приходится на область FLASH -ток потребления сразу подскакивает.


2 all: проблема решилась вставкой ключевого слова __rumfunc перед определением функции. Теперь функция сохраняется во флешь, а при стартапе копируется в RAM, где потом собсно и выполняется smile.gif 08.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 26 2008, 08:54
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Alexashka @ Aug 26 2008, 11:12) *
2 all: проблема решилась вставкой ключевого слова __rumfunc перед определением функции.
Выворачивался, терпел пытки, но название компилятора не выдал smile.gif Чтоб вам тоже тренироваться в телепатии. wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Aug 26 2008, 10:05
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



Цитата(Сергей Борщ @ Aug 26 2008, 15:54) *
Выворачивался, терпел пытки, но название компилятора не выдал

__ramfunc в IAR, а в gcc __attribute__ ((section (".ramfunc"))) В скриптах атмеловских приметов для gcc секция .ramfunc уже определена.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Aug 26 2008, 10:30
Сообщение #8


Практикующий маг
******

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



Цитата(SergeiCh @ Aug 26 2008, 14:05) *
__ramfunc в IAR, а в gcc __attribute__ ((section (".ramfunc"))) В скриптах атмеловских приметов для gcc секция .ramfunc уже определена.



Так точно! IAR v5.10
Go to the top of the page
 
+Quote Post
proba
сообщение Aug 26 2008, 10:57
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526



у многих мк тоже самое:
Renesas M16C/R8C: @32kHz с RAM - 30uA, с Flash - 150uA
Freescale MC9S08QE: @16kHz c RAM - 7uA, c Flash - 22uA
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:53
Рейтинг@Mail.ru


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