реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Размещение КС в IAR 5.XX по определенному адресу
Alexander_84
сообщение Feb 27 2010, 19:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-09-08
Пользователь №: 40 181



Требуется разместить конрольную сумму по заданному адресу. Нашел это http://supp.iar.com/Support/?Note=11927. Насколько понял Add usage of the symbol __checksum in your application значит в Extra Options прописываем напимер --define_symbol __checksum=0x4000 и КС размещается по этому адресу. Когда так делаю получаю Error[Li006]: duplicate definitions for "__checksum"; in "command line/config", and "Place holder __checksum" . Что не так?

Сообщение отредактировал Alexander_84 - Feb 27 2010, 19:22
Go to the top of the page
 
+Quote Post
Alexander_84
сообщение Feb 28 2010, 06:57
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-09-08
Пользователь №: 40 181



Пробовал также через --place holder такая же ошибка.
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Feb 28 2010, 07:03
Сообщение #3


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Это потому что у вас __checksum объявлен в *.icf файле и вы его еще пытаетесь добавить с помощью Extra Options, забудьте Extra Options корректируйте icf файл.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 28 2010, 07:14
Сообщение #4


Гуру
******

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



1. Размещать контрольные суммы по фиксированным местам неразумно - мешаете линкеру и получаете неиспользуемые дыры.
2. Если уж собрались рулить, то не пользуйтесь всякими галочками в IDE - в скрипте линкера укажите где, и уже рулите
через ichecksum/ielftool


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Alexander_84
сообщение Feb 28 2010, 09:41
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-09-08
Пользователь №: 40 181



А можно подробнее как это сделать в icf файле, кстати __checksum у меня в icf не прописан. Я хотел сделать так в icf размещаю секцию .checksum так: place at address mem: 0x00004000 { readonly section .checksum };
затем в ExtraOprions хотел разместить __checksum в этой секции так: --place_holder __checksum,2,.checksum,4
Go to the top of the page
 
+Quote Post
Alexander_84
сообщение Feb 28 2010, 11:21
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-09-08
Пользователь №: 40 181



Вообщем сделал чтобы размещалось по нужному адресу. Просто прописав в icf place at address mem: 0x00004000 { ro section .checksum };
--place_holder линкер как понял сам добавляет при включение в IDE подсчета КС D:\work\New_PP\Soft\LPC2148_flash48.icf --semihosting
--entry __iar_program_start --place_holder
__checksum,2,.checksum,1 --define_symbol
__checksum_begin=0x4004 --define_symbol
__checksum_end=0x7cfff
Но есть одна особенность в программе необходимо что либо делать с __checksum иначе вылезает ошибка ielftool error: The checksum symbol was not found in string table. И еще вопрос в icf прописаны define symbol __ICFEDIT_region_ROM_end__ = 0x0007CFFF; как в программе использовать эту константу __ICFEDIT_region_ROM_end__. В 4 IAR через extern можно было.

Сообщение отредактировал Alexander_84 - Feb 28 2010, 11:23
Go to the top of the page
 
+Quote Post
Alexander_84
сообщение Mar 1 2010, 07:54
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-09-08
Пользователь №: 40 181



И еще вопрос в 5 IAR директивы ORG нет, что можно использовать?
Go to the top of the page
 
+Quote Post
skripach
сообщение Mar 30 2010, 13:38
Сообщение #8


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Но есть одна особенность в программе необходимо что либо делать с __checksum

Что делать?


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
skripach
сообщение Apr 2 2010, 06:39
Сообщение #9


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Что делать?

Копировать содержимое __checksum в переменную например.
Цитата
Размещать контрольные суммы по фиксированным местам неразумно

Вот и я к этому пришел, только не сразу придумал как загрузчик узнает где эта самая КС находится. wink.gif


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 2nd July 2025 - 03:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016