Jump to content
    

Здравствуйте. Извините, что пишу старую проблему в новую тему, но в старую никто не заходит(( А очень нужна помощь!!!

В файле линкера размещаю секции.

Одна секция нужна мне для того, чтобы хранить в ней данные, она не должна стираться загрузчиком. Создается сегмент памяти, в нем размещается секция, а в программе идет запись значений в адреса, лежащие в этой секции.

файл линкера прилагается.

Еще три секции нужны для размещения в них константных массивов. так же создаю секции, в тексте программы - #pragma(location...) и помещаю константные массивы.

Но происходит вот что - выделенные секции блокируются, и при следующей прошивке, IAR не может их переписать. В истории видно, что последнее действие - попытка разблокировать адрес из этих секций.

В случае с первой секцией все правильно, она должна быть залочена. Но остальные-то получается, переписываются при каждой прошивке(чтобы записать туда константы). Не сумев разблокировать, так и виснет.

Что делать? Как разместить секции так, чтобы просто потом в программе указывать адреса размещений, но не блокировать область?

заранее благодарна за возможный ответ:)

 

Хотя я думала, что секции переписываться и не должны, программа-то туда не должна записываться. Там размещаются только константы...

На всякий случай вот файлы из board

flash.txt

board_memories._.txt

cstartup.txt

LowLevel.txt

Edited by Daria

Share this post


Link to post
Share on other sites

она не должна стираться загрузчиком

Так пусть не затирает... Или он врагами зашит?

 

Лично я бы не стал связываться с такой сложной организацией.

Выделяете страницу подходящую флэша и в ней храните данные (некоторое количество минимально стираемых областей).

Обращаетесь к этой области по типизированному указателю. (Можно по куче разных указателей - на вкус).

От компилятора вообще эту область скрываете. Типа нету ея совсем. Вот он и не будет туда лезть.

 

Что такое "залочено" я не очень понимаю. В смысле, понимать - понимаю, но как этот процесс может происходить вне вашего, ясно сформулированного желания - не понимаю.

 

 

Share this post


Link to post
Share on other sites

Так пусть не затирает... Или он врагами зашит?

 

Лично я бы не стал связываться с такой сложной организацией.

Выделяете страницу подходящую флэша и в ней храните данные (некоторое количество минимально стираемых областей).

Выяснилось, что области тут вообще ни при чем ;) . Выкинула их из программы, и оказалось, что не грузится код, размером больше 64 кб. То есть, если сократить прогу до 63, допустим, все прошьется лучшим образом, а чуть добавляешь - и зависает. Прошивает 64 и зависает на следующем сегменте.

Что могло произойти? Раньше все грузилось, никаких проблем не возникало

Edited by Daria

Share this post


Link to post
Share on other sites

Теть Даш, вы бы обозначили как-то конкретный тип процессора, тулинг для прошивки какой.

 

Ибо прошиваете вы, а не призрак. Не бывает такого, прошиваю, а ОНО не прошивается. ОНО - это злые клоуны у Стивена Кинга.

А у вас на 100% детерминированная железка.

Share this post


Link to post
Share on other sites

Теть Даш, вы бы обозначили как-то конкретный тип процессора, тулинг для прошивки какой.

 

Ибо прошиваете вы, а не призрак. Не бывает такого, прошиваю, а ОНО не прошивается. ОНО - это злые клоуны у Стивена Кинга.

А у вас на 100% детерминированная железка.

:biggrin: Злые клоуны, точно! :biggrin: at91sam7x512 IAR 5.41

Я уже задавала такой вопрос в другой теме, там все описала, и как-то не подумала, что тема-то новая, значит, и описать надо заново! :laughing: Заработалась, наверное.

 

Share this post


Link to post
Share on other sites

Нашла на форуме, уже когда-то поднимали такую тему!

http://electronix.ru/forum/index.php?showt...82&hl=ewarm

Ответ непонятный :( И единственный:( Что такое RDI?

Но радует, что у кого-то такое уже случалось, значит, дело не в моей программе!

 

Share this post


Link to post
Share on other sites

Господь дал вам самбу, а вы пользуетесь какой-то ерундой. Никогда не пойму такого.

 

Share this post


Link to post
Share on other sites

Господь дал вам самбу, а вы пользуетесь какой-то ерундой. Никогда не пойму такого.

Самба не позволит отлаживать программу.

Все дело в том, что объем проги не позволяет отлаживаться в debuge, она превышает размер ОЗУ, поэтому в последние несколько месяцев мне приходилось отлаживаться прямо в Release. А для этого надо загрузить прогу во flash. А она перестала грузиться.

Share this post


Link to post
Share on other sites

Debug, Release - даже не смешно.

Отладчик должен быть встроенным по жизни.

И зачем отлаживать в ОЗУ. Вот самба как раз позволит спокойно записать во флэш и с нее стартовать. (Без всяких перевертываний битиков NV). Т.е. стартует самба всегда, но вы с консоли переходите на программу во флэш... К примеру.

 

Ибо то, что работает в ОЗУ - это совсем не то, что будет работать во флэш. Сильно не то. Т.е. отлаживать или проверять все заново надо будет.

 

 

А заливка флэша ничуть не дольше заливки ОЗУ. Ну мож чуть дольше, разница непринципиальна.

Всю жизнь отлаживаюсь из флэша. 30 000 перезаписей не достигал ни разу.

 

А самбу надо свою, сопряженную с отладчиком. Вот стоит раз чуток написать себе свою самбу - и всю жизнь потом не знать проблем. (Там кода, если на дельфях - на два экрана всего)....

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...