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

 
 
 
Reply to this topicStart new topic
> IAP (LPC17xx)
jcxz
сообщение May 5 2013, 08:05
Сообщение #1


Гуру
******

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



В UserManual на LPC17xx в параграфе 32.8 IAP commands сказано, что:
IAP commands, which results in a flash write/erase operation, use 32 bytes of space in the top portion of
the on-chip RAM for execution

Интересно - где находятся эти 32 байта?
Стираю/пишу во flash, смотрю в начало и в конец обоих регионов RAM LPC1758
mem:[from 0x10000000 size 0x8000]
mem:[from 0x2007C000 size 0x8000]
и не вижу никаких изменений в этих областях. Странно.... Врёт UM??? smile3009.gif
В то же время вижу, что при вызове IAP, она использует до 96 байт стека.
Может этот пункт в UM более не соответствует действительности и теперь вызовы IAP используют только стек?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 5 2013, 08:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



может он сохранил регион в стек, а потом восстановил?
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 5 2013, 09:46
Сообщение #3


Гуру
******

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



Зачем?
Тогда и стек будет использован (<=96байт) и (для ISR-ов активных во время работы IAP) та часть ОЗУ будет использована - два места надо будет резервировать.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 5 2013, 09:49
Сообщение #4


Гуру
******

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



Никогда не задавался таким вопросом. Сказано, что использует - выделил и забыл.
QUOTE (jcxz @ May 5 2013, 11:05) *
и не вижу никаких изменений в этих областях.
А вы заполняли эти области каким-то значением вроде 0xAAAA5555, или, возможно, наблюдали там результат предыдущих вызовов идентичный результату текущего?


--------------------
На любой вопрос даю любой ответ
"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
jcxz
сообщение May 5 2013, 10:42
Сообщение #5


Гуру
******

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



Цитата(Сергей Борщ @ May 5 2013, 15:49) *
Никогда не задавался таким вопросом. Сказано, что использует - выделил и забыл.
Я бы "выделил и забыл" если бы знал, где находится эта top portion of the on-chip RAM.
У LPC1758 два одинаковых региона ОЗУ.
В старших адресах 1-го или 2-го региона? Или в младших адресах 1-го или 2-го региона?
Выделять 32*4 из-за косноязыкой документации кажется как-то глупо...

Цитата(Сергей Борщ @ May 5 2013, 15:49) *
А вы заполняли эти области каким-то значением вроде 0xAAAA5555, или, возможно, наблюдали там результат предыдущих вызовов идентичный результату текущего?
Обижаете... Зачем так плохо думаете? cool.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 5 2013, 19:11
Сообщение #6


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(jcxz @ May 5 2013, 14:05) *
mem:[from 0x10000000 size 0x8000]

должно быть в конце этой области (основной рамы).


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 09:39
Рейтинг@Mail.ru


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