Jump to content

    
Sign in to follow this  
_Alfred_

Помогите начать с IAR

Recommended Posts

Что нужно сделать, чтобы, код DoSmth( SomeArray ); нормально работал ?
void DoSmth( char __flash *Arr ){
}

Только при этом такая функция перестанет работать с массивами в ОЗУ. Поэтому в pgmspace.h введены дополнительные фукции типа puts_P().

Share this post


Link to post
Share on other sites

Продолжаем череду глупых вопросов )).

Что может означать подобная картина в дебаггере ( см. аттач ) ?

Появляеться она при вызове одной из функций, причём сразу же после старта дебаггера. Если этот вызов функции закомментировать, то всё работает нормально.

Пробовал рыться в коде с целью выяснения конкретной строчки, наткнулся на простое присваивание.

post-30404-1192002237_thumb.jpg

Share this post


Link to post
Share on other sites
Что может означать подобная картина в дебаггере ( см. аттач ) ?
Что он исполняет какой-то код. Возможно, в вашей функции произошло зацикливание.

Share this post


Link to post
Share on other sites

Дело в том, что такая картина появляеться СРАЗУ при старте программы, то есть функция, из-за вставки которой в код появляеться такое чудо, ещё не вызывалась.

Share this post


Link to post
Share on other sites
Что он исполняет какой-то код. Возможно, в вашей функции произошло зацикливание.

Или улетел куда-нибудь из поля зрения исходника.

Такое возможно при уровнях оптимизации выше среднего, когда текст есть, а код, соответствующий этому тексту соптимизирован (например, в другое место).

В таких случаях я открываю окно дизассемблера и шагаю по нему одновременно контролируя по исходнику.

Share this post


Link to post
Share on other sites
Оптимизация выключена, и, как видно на скриншоте, в окне дизассемблера вместо ассемблерного кода стоят прочерки.
Ну раз это происходит в самом начале - выкиньте из проекта все лишнее и выложите минимальный проект, в котором эффект воспроизводится. Будем посмотреть. Обычно прочерки выводятся при попытке просмотра несуществующей памяти или если дебаггер не может считать данную область памяти по JTAG (нет связи с процессором или процессор чем-то сильно занят). Вы не упомянули, какой процессор и какой отладчик используете.

Share this post


Link to post
Share on other sites
Подскажите как в IAR отключить чувствительность к регистру? Чтобы PortA и PORTA было одинаково для компилятора.

Перейти на Pascal :)

Кстати, ИАР некорректно работает c именами, отличающимися только регистром.

Share this post


Link to post
Share on other sites

Почему это некорректно ?, -в соответствии со стандартом,- ANSI _C.

"Компилятор С обрабатывает прописные и строчные буквы, как разные символы"

хотя например, 0xff или 0xFF ему помоему побарабану

ЗЫ, хотя, учебник говорит (повторение- мать учения-:) ), что вышесказанное относится к идентификаторам

"примеры трех форм целых констант

Десятичные Восьмеричные Шестнадцатеричные

32179 076663 0x7db3 или 0x7DB3"

Share this post


Link to post
Share on other sites
Почему это некорректно ?, -в соответствии со стандартом,- ANSI _C.

"Компилятор С обрабатывает прописные и строчные буквы, как разные символы"

Нет-нет, у ИАР действительно есть ошибка. Я сейчас в командировке, а на компе на работе был примерчик. На телесистемах обсуждалось. В том то и дело, что в каких-то случаях различие не отрабатывается.

Share this post


Link to post
Share on other sites

Если не забудете, покажИте, любопытно будет узнать про эти грабли.

И может, в более поздних версиях этот баг устранен?

(по телесистемах рыться поиском неохота)

Share this post


Link to post
Share on other sites
"Всякое категорическое мнение должно быть признано неверным."

Это не я придумал, это - человечество. - Да, есть проколы и неудобства в ИАРЕ, но даже я не идеален. Мне кажется, за качество компайлера иаровцам можно простить все что угодно! К тому же не каждый день ведь приходится переходить на новые чипы, вполне можно ( и многие так делают) брать старый проект как заготовку. Когда кого-то ругаешь, вроде как сам возносишься... А откуда мы так хорошо знаем недостатки системы? Не потому ли, что пользуемся интенсивно и предпочитаем иар другим?!

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

 

пришлите мне перевод dred73{dog}inbox.ru

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.

Sign in to follow this