|
|
  |
Простые вопросы по IAR |
|
|
|
Aug 30 2007, 15:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Beginning @ Aug 30 2007, 18:00)  Как обозначить глобальную переменную, что бы она была видна в других подлинковачных файлах. Абсолютно так же как в любимом, как я слышал, Вами всей душой Keil и вообще в любом компиляторе 'C'. P.S. Место этого вопроса не в теме по АРМ. Перенес. P.P.S. В 'C' все глобальные переменные видны снаружи по умолчанию, если специально не ограничивать область видимости, но мне что-то подсказывает, что вопрос был не об этом.....
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 30 2007, 16:52
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Beginning @ Aug 30 2007, 19:37)  Где в настройках IAR включить Повторяю - нигде. Они таковые по умолчанию и "галочками" естественно не отключаются. Тут уже было высказано предположение о том, что надо почитать про extern. Читать в любой книжке по "C". Повторяю по "C" а не по Keil, IAR, GNU, Rowley, ибо это фича языка а не особенность компилятора. Что касается допонительного вопроса по размещению чего-то по конкрктному адресу, то лучше этого не делать никогда. А если уж сильно надо, то пользоватся надязыковыми средствами типа линкера. И только в наикрайнейшем случае следует пользоватся уникальными наворотами конкретного компилятора, прочитав документацию на конкретный компилятор. Что каксается IAR, то это зависит от версии. В 5.10, например, похерили (ну и наверное правильно) инициализацию  что на самом деле ознает, что похерили все, ибо просто обращение по конкретному адресу не требует искуственных наворотов к языку. Правда линкер у них пока сырой (или я не врубился совсем), что связывает руки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 30 2007, 17:49
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
Про EXTERN знаю. Я писал много под AVR. Гарвардская архитектура. Там три сегмента FLASH, ROM, DATA использовал, и всё было в шоколаде (CodeVisionAVR C Compiler). Глобальные переменные были видны во всех файлах, и не было проблем с дополнительными манипуляциями. Сейчас под ARM пишу, Фон Неймовская архитектура, и много вопросов появляется, наверняка являющиеся раздражительными и недостойными для местных гуру. А по конкретному адресу надо потому, что программа из внешней ROM работает, а переменная должна во внешней flash сохранятся.
Кстати хотел Вам zltigo ответить, хотя Вы всячески пытаетесь меня уязвить в неграмотности, но ладно, Вы мне отвечаете на вопросы, на поиск ответов на которые сейчас просто НЕТ ВРЕМЕНИ! Горит проект. И за это Вам спасибо. Так вот что такое listing, как не удивительно, я тоже знаю. Я говорил за удобство. В других оболочках (Keil, Cvision) мне было удобно работать так, а не просматривать listing. А в IAR я такой возможности, не обнаружил, поэтому и спросил.
Сообщение отредактировал Beginning - Aug 30 2007, 17:52
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Aug 30 2007, 18:14
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Beginning @ Aug 30 2007, 20:32)  Про EXTERN знаю. Я писал много под AVR. Гарвардская архитектура. Там три сегмента FLASH, ROM, DATA использовал, и всё было в шоколаде (CodeVisionAVR C Compiler). Глобальные переменные были видны во всех файлах Цитата Вы хоть поняли, что написали? Незнаю, что Вы там писали, но сие абсолютно платформенно независимая вещь.
наверняка являющиеся раздражительными и недостойными для местных гуру Эти вопросы достаточно обычны, а вот что мне несколько не понравилось, так это Ваше совершенно ничем не спровоцированное выступление за один из компиляторов с нелестными эпитетами по поводу другого. Из которого вроде-бы следовало, что Автор всех собак съел на этом, хотя и не приступал к этой закуске  . Так что, простите, я на все через эту призму смотрю. Цитата А по конкретному адресу надо потому, что программа из внешней ROM работает, а переменная должна во внешней flash сохранятся. О господи! Про указатели прочитайте, да?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 30 2007, 19:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Beginning @ Aug 30 2007, 21:25)  ..мне по-барабану какой компилятор. Да, это заметно  . Ладно, все - больше не буду. Цитата(rezident @ Aug 30 2007, 21:46)  В последних версиях IAR выкинула такую конструкцию... Выкинули инициализацию. Осталось некоторая видимость ввиде указания адреса, что уже совершенно ненужный прибамбас, ибо штатными 'C' средствами решается. Цитата , чтобы более точно соответствовать стандарту ну стандарт этого не определяет и не запрещает. Формат объектника на ELF поменяли а это (как и исчезновение выкидывания неиспользуемых функций при линковке объектников) просто последствия. Зато теперь чужими линкерами и библиотеками можно пользоватся, что крайне неплохо. Цитата квалификатор const не обязывает к тому, что переменная с этим квалификатором обязана во Flash находиться. const указывает лишь на то, что это переменная не модифицируется. Ну перебор  , естественно не для случая, когда явно указан адрес расположения переменной.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|