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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Keil и HEX->BIN
aaarrr
сообщение Jul 31 2011, 18:49
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



map приложите.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jul 31 2011, 19:14
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Jul 31 2011, 22:49) *
map приложите.


ну как всегда, Вы правы

код-то кодом, но цельный константный массив был объявлен как не константный, поэтому помещен в RW sm.gif

Спасибо!
Go to the top of the page
 
+Quote Post
yagorik
сообщение Feb 8 2012, 14:17
Сообщение #18





Группа: Новичок
Сообщений: 7
Регистрация: 26-12-11
Пользователь №: 69 100



Цитата(HARMHARM @ Jun 6 2008, 22:23) *
Я пользуюсь srecord. Очень мощная штука, все умеет что надо. HEX-файлы после нее едят все.
Пример скрипта для склеивания бутлоадера с приложением с вставкой CRC. При этом формируется дополнительный бинарник для шифрования (тоже с CRC).

Код
C:\DEV\ARM\srec_cat.exe Application\application.hex --Intel --l-e-crc32 --max Application\application.hex --Intel --Output application.hex --Intel
C:\DEV\ARM\srec_cat.exe Bootloader\bootloader.hex --Intel --Output bootloader.hex --Intel
C:\DEV\ARM\srec_cat.exe bootloader.hex --Intel --fill 0xFF 0x0 0x5000 application.hex --Intel --Output combined.hex --Intel
C:\DEV\ARM\srec_cat.exe application.hex --Intel --offset -0x5000 --Output application.bin --Binary

Не проконсультируете по Srecord. Мне нужно подсчитать СRC16 hex-файла к примеру от нуля до адреса DDFD(включительно) и записать контрольную сумму по адресу DDFE. Какой должна быть строка вызова Srecord. И чем будут отличаться строки для вызова CRC16 CCITT и XMODEM?
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Feb 8 2012, 14:47
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



На правах рекламы - вызов SRecord для подсчёта контрольной суммы векторов прерываний. Алгоритм - сумма int-ов по смещениям 0..0x20 должна быть равна нулю. Контрольная сумма записывается по адресу 0x14. Дальше "пристыковывается" остальной файл без изменений.
Под Ваши алгоритмы переделывайте самостоятельно - надо "растянуть" или обрезать файл (смотря по тому, что приходит от линкера) и подобрать правильный ключ для контрольной суммы.

Код
echo add arm core vectors checksum
srec_cat ^
         %File%.bin -binary -crop 0x00 0x14 0x18 0x20 -LECN 0x14 4 4 ^
         %File%.bin -binary -crop 0x20 -max %File%.bin -binary ^
         -o %File%.bin -binary


PS ccitt / xmodem, насколько я понимаю, различаются полиномами.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Feb 9 2012, 08:10
Сообщение #20


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(toweroff @ Jul 31 2011, 19:28) *
После комеиляции размер кода 9056, размер BIN - 10772
Что туда еще напихалось?

Пользовал fromelf

Константы для инициализация переменных в операторах типа int A = 35; и т.п.
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 9 2012, 08:29
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(yagorik @ Feb 8 2012, 18:17) *
Не проконсультируете по Srecord. Мне нужно подсчитать СRC16 hex-файла к примеру от нуля до адреса DDFD(включительно) и записать контрольную сумму по адресу DDFE. Какой должна быть строка вызова Srecord. И чем будут отличаться строки для вызова CRC16 CCITT и XMODEM?

Пожалуйста:
Код
srec_cat input.hex -i -f 0xFF 0 0xDDFE -lecrc16 0xDDFE -ccitt -o output.hex -i

Возможны варианты: -lecrc16 вставляет little endian CRC, а -becrc16 вставляет big endian CRC; -ccitt можно заменить на -xmodem.
Вообще-то там есть руководство. Но программа настолько универсальная, что руководство несколько сложное для новичков.
Go to the top of the page
 
+Quote Post
yagorik
сообщение Feb 9 2012, 12:18
Сообщение #22





Группа: Новичок
Сообщений: 7
Регистрация: 26-12-11
Пользователь №: 69 100



Цитата(scifi @ Feb 9 2012, 11:29) *
Пожалуйста:
Код
srec_cat input.hex -i -f 0xFF 0 0xDDFE -lecrc16 0xDDFE -ccitt -o output.hex -i

Возможны варианты: -lecrc16 вставляет little endian CRC, а -becrc16 вставляет big endian CRC; -ccitt можно заменить на -xmodem.
Вообще-то там есть руководство. Но программа настолько универсальная, что руководство несколько сложное для новичков.

Выдаёт вот что:
Код
srec_cat: input.hex: 4097: contradictory 0000DDFE value (previous = 31, this one = FF)

в приложенном файле hex

Сообщение отредактировал yagorik - Feb 9 2012, 12:20
Прикрепленные файлы
Прикрепленный файл  input.txt ( 180.01 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 1 2012, 04:45
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Много лет назад получалось, а сейчас не могу вспомнить как.

Подскажите, что я делаю не так :


0)Микроконтроллер AT91SAM7S64, кварц 18.432МГц
1)Подтягиваю ногу TST к питанию
2)Включаю питание микроконтроллера
3)Снимаю низкий уровень с reset (запускаю микроконтроллер)
4)Снимаю высокий уровень с TST
5)Втыкаю разъём в USB - и Windows находит USB devise USB\VID_03EB&PID_6124\5&20B1BB6F&0&2

6)Установил драйвер SAM-BA_CDC.zip взятый вот с этой страницы http://www.atmel.com/tools/SAM7S-EK.aspx . Хотя нам написано что он для Vista , а у меня XP
В списке устройств появился AT91 USB to serial converter COM4

7)Запускаю SAB-BA , появляется маленькое окошко в котром я выбираю COM4 и AT91SAM7S64
Жму Connect, окошко исчезает и больше ничего не происходит.
8)Если повторить п7) ещё раз, вылезет ошибка Error in Startup Scriph
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Mar 1 2012, 06:01
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(MiklPolikov @ Mar 1 2012, 07:45) *
7)Запускаю SAB-BA , появляется маленькое окошко в котром я выбираю COM4 и AT91SAM7S64
Жму Connect, окошко исчезает и больше ничего не происходит.
8)Если повторить п7) ещё раз, вылезет ошибка Error in Startup Scriph

Драйвера идут в составе Sam-Ba, для версий Sam-Ba они свои, например, Sam-Ba 2.11 использует стандартный usbser.sys. Посмотрите папку в которой установлена Sam-Ba, там будут и драйвера.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 1 2012, 13:34
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(DmitryM @ Mar 1 2012, 09:01) *
Драйвера идут в составе Sam-Ba, для версий Sam-Ba они свои, например, Sam-Ba 2.11 использует стандартный usbser.sys. Посмотрите папку в которой установлена Sam-Ba, там будут и драйвера.


Установил драйвер из папки SAM-BA.
Теперь та же ошибка вылезает с первого раза и сразу.
Проверил на своей плата, и на демо плате LDM-SAM7S128 , результат один.

Кто-нибудь знает в чём ошибка?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 1 2012, 14:57
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702





О чудо ! У меня получилось ! Сейчас составлю подробную инструкцию от начала и до конца, и выложу здесь.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 1 2012, 22:41
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Сколько не искал, ни где не нашёл полной инструкции по прошивке через SAM-BA , от и до.
Поэтому пишу подробно здесь. Думаю кому-нибудь будет полезно.

Делал на компьютере в windows XP и на ноутбуке в windows 7. Действия везде одинаковые, и ошибки при неправельных действиях то
же одинаковые.

1) Что есть :
1.1 Keil
1.2 Плата с таким функционалом:
At91SAM7S64
Кварц 18.432МГц(с другим работать не будет)
RC ячейчка на ноге PLL , такая же как в документации на отладочную плату LDM-SAM7S(без неё работать не будет)
USB pull-up резистор подключен к +питания (хотя в документации на процессор сказано, что должен быть подключен к PA16)
Джамперы на ногах ERASE , TST , которми можно подтянуть ноги к +питания

2) Генерация файла BIN
В KEIL в опциях проекта вкладка User , строка Run User Program After Build , Run #1 пишу
C:\Keil\ARM\BIN40\fromelf.exe --bin -o "keil2.bin" "keil2.axf"
кде keil2 - название проекта, соответственно keil2.axf название файла, котрый после компиляции
появляется в папке проекта и из которого fromelf.exe делает keil2.bin
Левее строчки нужно почтавить галочку.

3) Установка SAM_BA
Взял SAM-BA 2.11 for Windows с сайта Атмела http://www.atmel.com/tools/SAM7S-EK.aspx

4) Запуск загрузчика в процессоре
Включаю питание процессора
Жду >10c
Замыкаю джампер ERASE
Жду >10c
Размыкаю джампер ERASE
Жду>10c
Отключаю питание
жду >10c
Включаю питание
Жду>10c
Замыкаю джампер TST
Жду >10c
Размыкаю джампер TST
Жду >10c
Отключаю питание
жду >10c
Включаю питание
Жду>10c
Втыкаю разъём в USB . Компьютер находит новое устройство.

5) Установка драйвера
Драйвер нужно выбрать вручную. Он в той папке, куда установился SAM-BA
C:\Program Files\ATMEL Corporation\sam-ba_2.11\drv

6)Програмирование
6.1 Повторяю действия П4) . Их нужно повторить перед каждым новым запуском SAM-BA, даже если устройсто есть в списке устройств и как
будто работает.
(как правило достаточно только сбросить питание и передёрнуть USB разъём)
У меня на компьютере работает только если подключать к usb контроллеру, а если к тем usb разъёмам что на материнской плате
то нет.
6.2 Жму CTRL+ALT+DEL
В диспетчере задач ищу sam-ba.exe . Если нахожу- закрываю.
Почему-то sam-ba.exe иногда остаётся в списке задач после предыдущего программирования и закрытия.
И если она там осталась, новая попытка программирование не удастся. При нажатии connect вылезет ошибка Error in Startup Scriph
Наблюдаю это и в XP на компьютере и в 7 на ноутбуке.
6.3 Запускаю SAM-BA
В появившемся маленьком окне выбираю AT91SAM7S64 , USBserial/com и жму connect
6.4 В открывшемся большом окне, в двух одинаковых местах указываю
Adress 0x100000
Size 0x10000
Левее кнопки Sent file выбираю свой бинарник, и жму Sent file .
6.5 Во время прошивки вылезает два сообщения, в обеих жму ОК
После прошивки жму Compare send file with memory
Если сообщений об ошибке не вылезло-прошивка удалась.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 1 2012, 23:43
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(MiklPolikov @ Mar 2 2012, 02:41) *
4) Запуск загрузчика в процессоре

Что-то в этом пункте не так: во-первых, ждать больше 10 секунд нужно только когда установлен джампер TST; во-вторых, устанавливается он ДО включения питания (по крайней мере на старых ревизиях кристалла его установка после включения уже ни на что не влияет).
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Mar 2 2012, 11:34
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(aaarrr @ Mar 2 2012, 02:43) *
Что-то в этом пункте не так: во-первых, ждать больше 10 секунд нужно только когда установлен джампер TST; во-вторых, устанавливается он ДО включения питания (по крайней мере на старых ревизиях кристалла его установка после включения уже ни на что не влияет).

Я написал как это получается делать у меня.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:08
Рейтинг@Mail.ru


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