Вопрос по IAR AVR. Как, можно программно узнать, где компилятор закончил использовать память. Спасибо.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Uri Kim
28 января 2004 г. 12:21
Составить ответ
|||
Конференция
|||
Архив
Ответы
Все спасибо всем. Проблема решена. Получил конец сегмента CSTACK, он последний в определении памяти линкером. Конечно несовсем правильно, но....
—
Uri Kim
(28.01.2004 14:31,
пустое
)
Ответ: Так и быть, скажу. (теперь все равно - испортили мальчишку) :(
—
-Тумблер-
(28.01.2004 15:33, 247 байт)
В IARе - размечтался :-)
—
miv
(28.01.2004 16:04,
пустое
)
В IAR-e - только так и делаю.
—
-Тумблер-
(28.01.2004 16:15,
пустое
)
Все зависит от того в каком порядке в *.xcl файле сегменты расположены (попробуй не менять ни чего в своей проге а просто переставь местами сегметы xcl местами, только те каторые лежат или грузаться в RAM ) :P)
—
miv
(28.01.2004 16:20,
пустое
)
Ответ: вот и поменяй порядок - если надо. И цифирки.
—
-Тумблер-
(28.01.2004 16:23,
пустое
)
Я так понимаю твоя программа с чужим xcl не работает :-)))
—
miv
(28.01.2004 16:30,
пустое
)
УРА!!
—
-Тумблер-
(28.01.2004 16:42, 404 байт)
УХ !
—
miv
(28.01.2004 17:02, 272 байт)
Ну наконец то ! У него - ВСТАЛО !!! АТАСССССС!!!!!!!!!!
—
Весельчак_У
(28.01.2004 17:33,
пустое
,
картинка
)
Чем больше узнаю про Ц, тем сильнее люблю АСМ ;О)
—
=mse=
(28.01.2004 17:09,
пустое
)
Зря батенька зря ! А слабо на асме проектик сваять чтоб кодов так 128Ккоманд , ну кроме "nop" да месяца так за 4...5 ;-)
—
miv
(28.01.2004 17:16,
пустое
)
Дык, на АСМе он будет не 128К а шибко меньше ;О)...
—
=mse=
(28.01.2004 17:27, 286 байт)
Ответ: Да не на много-то "..шибко"! Но в ASM-свихнуться можно от такого "доброго" предложения :)!
—
Прагматик
(28.01.2004 17:35,
пустое
)
Да прям - щас за 200К исходник - и ничего, нормально...
—
=mse=
(28.01.2004 17:55, 177 байт)
Ответ: Да! Эт, точно Поменьше разребать, но тоже хватает делов порой. Тут Вы правы!
—
Прагматик
(28.01.2004 17:59,
пустое
)
Дык, на АСМе он будет не 128К а шибко меньше ;О)...
—
=mse=
(28.01.2004 17:26, 286 байт)
Ответ: Опс :)
—
ACM=А на С Могёшь ? :)
(28.01.2004 17:38,
пустое
)
Тогда как на счет того что бы С все делал без участия человека :-)
—
miv
(28.01.2004 16:39,
пустое
)
Неправда, только что попробовал. Засунуло посередине.
—
Uri Kim
(28.01.2004 15:52,
пустое
)
надо читать - про линкер, про .xcl - файл, про сегменты..
—
-Тумблер-
(28.01.2004 16:18,
пустое
)
в АСМе решается просто: в конец кода помещается метка, потом указатель на метку и усё, приплыча ;О), в Ц, наверное можно подобным образом
—
=mse=
(28.01.2004 13:01,
пустое
)
Думаю товарисч имеет ввиду C !
—
miv
(28.01.2004 13:03,
пустое
)
имеет ;О)
—
=mse=
(28.01.2004 13:14,
пустое
)
ВВИДУ забыл :-))))))
—
miv
(28.01.2004 13:22,
пустое
)
Кто такая Ввида? ;О)
—
=mse=
(28.01.2004 13:28,
пустое
)
Це синоним ИМЕЕТ :-)))
—
miv
(28.01.2004 13:30,
пустое
)
А зачем ?
—
-Тумблер-
(28.01.2004 12:53,
пустое
)
Мне например понадобилось запесывать свои константы во flash (принимая их по RS-ке) а потом грузить в RAM ;-0
—
miv
(28.01.2004 12:56,
пустое
)
Тем более - зачем ? Зарезервируй место, как это принято в С : char v1,v2..., varray[..]; и.т.п..
—
-Тумблер-
(28.01.2004 13:09,
пустое
)
А varray[..] какого размера делать много жалко от случая к случаю число констант которые надо писать во flash меняется !
—
miv
(28.01.2004 13:37,
пустое
)
Ответ: такой - как надо.! Подумай сам - неужели не придумаешь ? ;)
—
-Тумблер-
(28.01.2004 14:27,
пустое
)
А какой надо зависит от того что в голову взбредет ХОСТУ !
—
miv
(28.01.2004 16:01,
пустое
)
Кстати константы сначало во flash надобно записать !
—
miv
(28.01.2004 13:26,
пустое
)
Кстати константы сначало во flash надобно записать !
—
miv
(28.01.2004 13:25,
пустое
)
Значит так --->
—
miv
(28.01.2004 13:20, 414 байт)
Я Вас уверяю :
—
-Тумблер-
(28.01.2004 14:25, 209 байт)
Да без участия человека ваще ничего не происходит !
—
miv
(28.01.2004 16:00,
пустое
)
Тогда вам нужно больше читать книжек...по программированию например.
—
-Тумблер-
(28.01.2004 16:17,
пустое
)
Кстати чукча не читатель а писатель :-))))))
—
miv
(28.01.2004 16:27,
пустое
)
А я то думал - чего он так долго и нудно спорит ? А он оказывается писатель....хорошо еще что не стрелятель...!
—
Весельчак_У
(28.01.2004 16:36,
пустое
,
картинка
)
А я еще и стрелятель неплохой особливо по бегущим кабанам :-))
—
miv
(28.01.2004 16:40,
пустое
)
Стрелятель - это тоже неплохо. Главное - заниматься своим делом
—
Весельчак_У
(28.01.2004 16:46,
пустое
,
картинка
)
А надпись не верна, нужно "Он открыл свое (и чужое) ТЕЛО" :-))))))))))))))))))))))))))))))))
—
miv
(28.01.2004 16:58,
пустое
)
Так Вы то скока прочитали :-) (Может за Вас С и свой исходный код ваяет :P)))))
—
miv
(28.01.2004 16:23,
пустое
)
В крайнем случае - используй malloc, calloc и.т.д. А искать хвост - это моветон.
—
-Тумблер-
(28.01.2004 13:12,
пустое
)
а если надо считать ЦРЦ области памяти? Располагать по абс адресам?
—
=mse=
(28.01.2004 13:24,
пустое
)
Ответ: если надо считать - считай. Почему нет ? Причем здесь "хвост" ? А под Виндами так же делаешь ? ;)
—
-Тумблер-
(28.01.2004 14:20,
пустое
)
Вот, кстати пример необх. знания адреса "хвоста"...
—
=mse=
(28.01.2004 15:31, 661 байт)
Под виндами я никак не делаю...
—
=mse=
(28.01.2004 14:53, 187 байт)
Вопрос или прикол :-0)
—
miv
(28.01.2004 13:33,
пустое
)
Какой прикол? Это на вопрос на предмет "моветон искать хвост"
—
=mse=
(28.01.2004 13:36,
пустое
)
Пардонте не понял - сильно изивняюсь :-))))
—
miv
(28.01.2004 13:38,
пустое
)
Ответ: "на вопрос" / "на предмет" - действительно, хрен поймешь..
—
-Тумблер-
(28.01.2004 14:19,
пустое
)
Где-то в конфе уже пробегало - там, вроде, есть псевдопеременные.
—
Сидоргек
(28.01.2004 12:45,
пустое
)
Да нет там ни каких псевдо переленных если надо узнать в процессе выполнения программы то -->
—
miv
(28.01.2004 12:49, 258 байт)
Ругается на NEAR_Z. Говорит неопределено в #pragma
—
Uri Kim
(28.01.2004 13:02,
пустое
)
А у тебя 3.10 версия так ты определи прагмой перед использованием и усЁ
—
miv
(28.01.2004 13:05,
пустое
)
Извени может чего-то недопонимаю, можно подробнее.
—
Uri Kim
(28.01.2004 13:09,
пустое
)
Перед использованием имени сегмента в функции (а лучше в какомнибудь инклуде) напиши --->>
—
miv
(28.01.2004 13:24, 224 байт)
А зачем это знать в процессе выполнения программы? Посмотрел после компиляции да и всё
—
-=Shura=-
(28.01.2004 12:52,
пустое
)
Млин ссылку сожрал ;-(
—
miv
(28.01.2004 12:59, 64 байт)
Ниччо не понимаю. В map файле прямым текстом написано, что и куда компилятор рассовал
—
-=Shura=-
(28.01.2004 13:04,
пустое
)
А сама - то программа в момент исполнения как оного читать будет ;-)
—
miv
(28.01.2004 13:28,
пустое
)
Так в момент исполнения это уже константа, сама прога изменить её не может. В чём проблема забить в прогу константу?
—
-=Shura=-
(28.01.2004 13:30,
пустое
)
Так ее не менять а знать охота ! Хотя и flash в 128 перешить мона :))
—
miv
(28.01.2004 13:32,
пустое
)
Если я правильно понял задачу
—
-=Shura=-
(28.01.2004 13:47, 348 байт)
Нет понял не правильно !
—
miv
(28.01.2004 14:07, 380 байт)
Ну и?
—
-=Shura=-
(28.01.2004 14:14, 77 байт)
Ы!
—
Телесиська
(18.05.2004 20:53,
пустое
)
Ку!
—
Телесиська
(18.05.2004 20:55,
пустое
)
А вот зачем ;-)
—
miv
(28.01.2004 12:58,
пустое
)
Посмотреть map файл? Там сводка и по data и по code.
—
Хрюша
(28.01.2004 12:42,
пустое
)
тьфу плять "программно" то я пропустил...
—
Хрюша
(28.01.2004 12:47,
пустое
)
Меня интересует программно.
—
Uri Kim
(28.01.2004 12:47,
пустое
)
Извиняюсь
—
Хрюша
(28.01.2004 12:48,
пустое
)
Какую ?
—
miv
(28.01.2004 12:31,
пустое
)
data
—
Uri Kim
(28.01.2004 12:49,
пустое
)
Про flash см. выше (псевдопеременные :)) ) а data сложнее ты должен знать грузишь ли ты константы и init переменные а ваще мона попробавать просто узнать _end сегмента data может и пройдет ?
—
miv
(28.01.2004 12:53,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru