Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: at91sam
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Daria
Здравствуйте. Извините, что пишу старую проблему в новую тему, но в старую никто не заходит(( А очень нужна помощь!!!
В файле линкера размещаю секции.
Одна секция нужна мне для того, чтобы хранить в ней данные, она не должна стираться загрузчиком. Создается сегмент памяти, в нем размещается секция, а в программе идет запись значений в адреса, лежащие в этой секции.
файл линкера прилагается.
Еще три секции нужны для размещения в них константных массивов. так же создаю секции, в тексте программы - #pragma(location...) и помещаю константные массивы.
Но происходит вот что - выделенные секции блокируются, и при следующей прошивке, IAR не может их переписать. В истории видно, что последнее действие - попытка разблокировать адрес из этих секций.
В случае с первой секцией все правильно, она должна быть залочена. Но остальные-то получается, переписываются при каждой прошивке(чтобы записать туда константы). Не сумев разблокировать, так и виснет.
Что делать? Как разместить секции так, чтобы просто потом в программе указывать адреса размещений, но не блокировать область?
заранее благодарна за возможный ответsm.gif

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

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

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

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

Daria
Цитата(DpInRock @ Mar 1 2011, 13:24) *
Так пусть не затирает... Или он врагами зашит?

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

Выяснилось, что области тут вообще ни при чем wink.gif . Выкинула их из программы, и оказалось, что не грузится код, размером больше 64 кб. То есть, если сократить прогу до 63, допустим, все прошьется лучшим образом, а чуть добавляешь - и зависает. Прошивает 64 и зависает на следующем сегменте.
Что могло произойти? Раньше все грузилось, никаких проблем не возникало
DpInRock
Теть Даш, вы бы обозначили как-то конкретный тип процессора, тулинг для прошивки какой.

Ибо прошиваете вы, а не призрак. Не бывает такого, прошиваю, а ОНО не прошивается. ОНО - это злые клоуны у Стивена Кинга.
А у вас на 100% детерминированная железка.
Daria
Цитата(DpInRock @ Mar 1 2011, 21:45) *
Теть Даш, вы бы обозначили как-то конкретный тип процессора, тулинг для прошивки какой.

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

biggrin.gif Злые клоуны, точно! biggrin.gif at91sam7x512 IAR 5.41
Я уже задавала такой вопрос в другой теме, там все описала, и как-то не подумала, что тема-то новая, значит, и описать надо заново! laughing.gif Заработалась, наверное.
Daria
Нашла на форуме, уже когда-то поднимали такую тему!
http://electronix.ru/forum/index.php?showt...82&hl=ewarm
Ответ непонятный sad.gif И единственныйsad.gif Что такое RDI?
Но радует, что у кого-то такое уже случалось, значит, дело не в моей программе!
DpInRock
Господь дал вам самбу, а вы пользуетесь какой-то ерундой. Никогда не пойму такого.
Daria
Цитата(DpInRock @ Mar 2 2011, 09:01) *
Господь дал вам самбу, а вы пользуетесь какой-то ерундой. Никогда не пойму такого.

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

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


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

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


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.