aaarrr 63 31 июля, 2011 Опубликовано 31 июля, 2011 · Жалоба map приложите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 0 31 июля, 2011 Опубликовано 31 июля, 2011 · Жалоба map приложите. ну как всегда, Вы правы код-то кодом, но цельный константный массив был объявлен как не константный, поэтому помещен в RW :) Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yagorik 0 8 февраля, 2012 Опубликовано 8 февраля, 2012 · Жалоба Я пользуюсь 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? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 8 февраля, 2012 Опубликовано 8 февраля, 2012 · Жалоба На правах рекламы - вызов 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, насколько я понимаю, различаются полиномами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 9 февраля, 2012 Опубликовано 9 февраля, 2012 · Жалоба После комеиляции размер кода 9056, размер BIN - 10772 Что туда еще напихалось? Пользовал fromelf Константы для инициализация переменных в операторах типа int A = 35; и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 9 февраля, 2012 Опубликовано 9 февраля, 2012 · Жалоба Не проконсультируете по 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. Вообще-то там есть руководство. Но программа настолько универсальная, что руководство несколько сложное для новичков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yagorik 0 9 февраля, 2012 Опубликовано 9 февраля, 2012 (изменено) · Жалоба Пожалуйста: 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 input.txt Изменено 9 февраля, 2012 пользователем yagorik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Много лет назад получалось, а сейчас не могу вспомнить как. Подскажите, что я делаю не так : 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба 7)Запускаю SAB-BA , появляется маленькое окошко в котром я выбираю COM4 и AT91SAM7S64 Жму Connect, окошко исчезает и больше ничего не происходит. 8)Если повторить п7) ещё раз, вылезет ошибка Error in Startup Scriph Драйвера идут в составе Sam-Ba, для версий Sam-Ba они свои, например, Sam-Ba 2.11 использует стандартный usbser.sys. Посмотрите папку в которой установлена Sam-Ba, там будут и драйвера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Драйвера идут в составе Sam-Ba, для версий Sam-Ba они свои, например, Sam-Ba 2.11 использует стандартный usbser.sys. Посмотрите папку в которой установлена Sam-Ba, там будут и драйвера. Установил драйвер из папки SAM-BA. Теперь та же ошибка вылезает с первого раза и сразу. Проверил на своей плата, и на демо плате LDM-SAM7S128 , результат один. Кто-нибудь знает в чём ошибка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба О чудо ! У меня получилось ! Сейчас составлю подробную инструкцию от начала и до конца, и выложу здесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Сколько не искал, ни где не нашёл полной инструкции по прошивке через 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 Если сообщений об ошибке не вылезло-прошивка удалась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба 4) Запуск загрузчика в процессоре Что-то в этом пункте не так: во-первых, ждать больше 10 секунд нужно только когда установлен джампер TST; во-вторых, устанавливается он ДО включения питания (по крайней мере на старых ревизиях кристалла его установка после включения уже ни на что не влияет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 2 марта, 2012 Опубликовано 2 марта, 2012 · Жалоба Что-то в этом пункте не так: во-первых, ждать больше 10 секунд нужно только когда установлен джампер TST; во-вторых, устанавливается он ДО включения питания (по крайней мере на старых ревизиях кристалла его установка после включения уже ни на что не влияет). Я написал как это получается делать у меня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться