|
Где бы взять исходники библиотек IAR 5.11 для ARM |
|
|
|
Jul 4 2008, 10:48
|
Группа: Новичок
Сообщений: 4
Регистрация: 2-11-06
Пользователь №: 21 907

|
Работаю с LPC2138 в IAR 5.11, возникла проблема: static переменным не присваивается ноль при инициализации. Хотелось бы посмотреть как работает __iar_zero_init в библитеке rt4t_al.a. У меня evaluation версия с iar.com, там исходников нет... Говорят они есть в full версии, но где ее взять?
|
|
|
|
|
 |
Ответов
|
Jul 8 2008, 13:50
|

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

|
1. static или не static по любому неинициализированвнные переменные попадают в bss 2. bss инициализируется нулями, если только специально не постараться. 3. с дуру у V5  даже проверил. 3. точка.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 8 2008, 16:38
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
Цитата(zltigo @ Jul 8 2008, 16:50)  2. bss инициализируется нулями, если только специально не постараться. = IAR (стр 43 (67) ODARM_1.pdf). Но не каждый транслятор так делает: \begin{excerpt:link=http://focus.ti.com/lit/ug/spnu151d/spnu151d.pdf} 5.12 Initializing Static and Global Variables in TIABI and TI ARM9 ABI Modes The ANSI/ISO C standard specifies that global (extern) and static variables without explicit initializations must be initialized to 0 before the program begins running. This task is typically done when the program is loaded. Because the loading process is heavily dependent on the specific environment of the target application system, the compiler itself makes no provision for preinitializing variables at run time. It is up to your application to fulfill this requirement. \end{excerpt} -- AN
|
|
|
|
|
Jul 8 2008, 18:12
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(AndrewN @ Jul 8 2008, 19:38)  Но не каждый транслятор так делает: Подтверждаю, не каждый. Code Composer Studio от TI в своё время подвёл меня этим Цитата By default, the .bss section and sections defined with the .usect directive have no raw data (they are uninitialized). They occupy space in the memory map but have no actual contents. Но, повторяю, у IAR с инициализацией полный порядок.
|
|
|
|
|
Jul 8 2008, 20:13
|

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

|
Цитата(aaarrr @ Jul 8 2008, 22:01)  Да и не такой уж и кривой..... Плавали  в части MSP430... Цитата Зато отучает полагаться на "0" в bss... Ну порадовали - отучает писать на "C" и приучает писать на неком подмножестве, тратить время и место на явную маниакальную инициализацию каждой переменной, не позволяет портировать нормальный сишный ранее написанный код без глюков... Цитата ... что, я считаю, правильно. Спасибо, я пешком постою
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 8 2008, 20:18
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zltigo @ Jul 9 2008, 00:13)  Плавали  в части MSP430... MSP430 - единственный процессор, под который я писал в IAR'e  Но не по причине глючности студии, а просто так получилось. Цитата(zltigo @ Jul 9 2008, 00:13)  ...тратить время и место на явную маниакальную инициализацию каждой переменной Ну, во-первых, не каждой. А во-вторых, я уж лучше руками проинициализирую именно то, что мне нужно. И далеко не всегда нулями.
|
|
|
|
|
Jul 8 2008, 20:32
|

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

|
Цитата(aaarrr @ Jul 8 2008, 22:18)  А во-вторых, я уж лучше руками проинициализирую именно то, что мне нужно. Смысла в раздумьях, что инициализировать, что нет нет никакого, как и монотонной в ручной работе по инициализации, как и в раздумьях проскаивать на красный свет или нет.... По любому стандарт "C" придумал не TI и не ему на него плевать. Добавлять опции полного или частичного отключения инициализации, это их право, а вот тупо выбрасывать инициализацию статически выделяемой памяти - свинство. Цитата И далеко не всегда нулями. Про не нули речь не идет, но тем не менее в большинстве случаев 0 это нормальное значение, а остальные переменные просто доинициализировать через data или явно нужными зачениями при необходимости.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
savram Где бы взять исходники библиотек IAR 5.11 для ARM Jul 4 2008, 10:48 VAI есть исходники библиотек от 4.20a и 4.11a.
Подойду... Jul 4 2008, 14:28 savram Цитата(VAI @ Jul 4 2008, 18:28) есть исхо... Jul 6 2008, 22:38  zltigo Цитата(savram @ Jul 7 2008, 00:38) Вообще... Jul 7 2008, 06:27 KRS Цитата(VAI @ Jul 4 2008, 18:28) есть исхо... Jul 4 2008, 15:34 zltigo Цитата(savram @ Jul 4 2008, 12:48) ..возн... Jul 5 2008, 07:36 gladov Цитата(zltigo @ Jul 5 2008, 11:36) Цитата... Aug 30 2011, 11:21 IgorKossak Цитата(savram @ Jul 4 2008, 13:48) Хотело... Jul 5 2008, 12:28 VAI ЦитатаПодойдут!
http://www.rapidshare.ru/72327... Jul 7 2008, 03:28 IgorKossak По дизассемблеру там, в частности, следующее:
Код_... Jul 7 2008, 05:43 savram Цитата(zltigo @ Jul 7 2008, 10:27) Ну что... Jul 8 2008, 12:41  zltigo Цитата(AndrewN @ Jul 8 2008, 18:38) Но не... Jul 8 2008, 17:31        aaarrr Цитата(zltigo @ Jul 9 2008, 00:32) Добавл... Jul 8 2008, 20:42         zltigo Цитата(aaarrr @ Jul 8 2008, 22:42) Возмож... Jul 8 2008, 20:51        AndrewN Кхм... Не очень я люблю цитировать Шекспира, но - ... Jul 8 2008, 22:23         zltigo Цитата(AndrewN @ Jul 9 2008, 00:23) Мален... Jul 9 2008, 06:43 aaarrr Для свинства это все же слишком мелко. Продукт уни... Jul 8 2008, 20:55 Alex03 ИМХО
1. Компилятор обязан поместить явно неинициал... Jul 9 2008, 04:07 Alechek Советую просто поставить последнюю версию IAR
В 6.... Aug 31 2011, 10:27
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|