Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51 - MAT91SAM9XE512 - SK - Форум - starterkit.ru
Насчет JTAG - разве по нему можно запрограммировать DataFlash? В доке по SAM-BA написано, что Boot Program работает только с DBGU и с USB.
Вопрос: U-boot может загрузить по TFTP stand-alone программу ( bin-файл ) в SDRAM и запустить его? Это чтобы постоянно не приходилось записывать программу в DataFlash и тем самым не придется запускать винду в виртуалке ( для SAM-BA ) да и производительность разработки/отладки повысится....
Не за что! Дело в том, что у меня host-OS тоже Linux, поэтому, если нажать Alt+Ctrl+F(1-5) у меня переключение будет на хост-машине Да и мне удобнее в X, т.к. я люблю работать в 4-х консолях одновременно.
Разобрался сам - достаточно было прочитать доку к u-boot'у. Для тех, у кого возникнет подобный вопрос:
Итак, для того чтобы запустить т.н. stand-alone программу ( т.е. программу, не требующую ОС ) необходимо загрузить u-boot. Для обсуждаемой платы достаточно нажать любую кнопку в терминале ( т.е. послать любой символ в uart ) при загрузке м-ра. Далее ввести команды:
Естественно нужно предварительно настроить tftp ( dhcp, bootp ). Можно использовать уже настроенную виртуальную машину с диска, идущего в комплекте.
Первоисточник: http://www.denx.de/wiki/view/DULG/UBootStandalone
Еще раз спасибо за участие, хочу добавить.
Залить в память платы можно не только через TFTP (слегка глючит в u-boot, причем не только этой версии и не только для ARM9), кстати, можно орбойтись и без DHCP с bootp (присвоив IP хостовой машины в сетке 192.168.0.xxx).
Так же можно залить через терминалку (например HyperTerminal) по kermit протоколу, командой
Еще как вариант, можно код лить в SDRAM прямо из SAM-BA и запускать, я пытался настроить это в прилагаемых скриптах (в скриптах есть "Run from 0x21d00000") но до ума не довел.
Для тех заинтересовался отладкой stand-alone программ для этой платы. Теперь я с уверенностью могу сказать, что самый удобный вариант - это загрузка по JTAG в SDRAM.
Я использую Amontec JTAGKey аппаратный отладчик-программатор, OpenOCD, gdb + Eclipse и все это под GNU/Linux.
Вот пример работы для данной платы:
1) Запускаем OpenOCD из под root'a:
# /opt/bin/openocd --file /opt/lib/openocd/interface/jtagkey.cfg --file /opt/lib/openocd/target/at91sam9260.cfg
3) По-умолчанию OpenOCD слушает порт 3333. Запускаем gdb:
$ arm-elf-gdb
4) В gdb вводим команды:
target remote localhost:3333
monitor soft_reset_halt
monitor arm7_9 force_hw_bkpts enable
symbol-file ВАША_ПРОГРАММА.elf
set $pc = 0x20000000
load ВАША_ПРОГРАММА.elf
thbreak main
Ваша программа остановится в начале ф-ии main. Для использования Eclipse создаем файл с этими командами - и в настройках IDE отладчика задаем полный путь к этому файлу.
VOYT, а ты где Amontec JTAGKey достал? Я пару месяцев назад в инете пробовал найти, у кого в России можно его купить и не нашел... .
И ,кстати, почему выбрал его, а не , скажем, USB-JTAG от Olimex?
А через что пробовали? RS232 или USB? У меня на аналогичной плате напрямую по USB не пошел - подключился на RS232 через USB переходник. Утилита вроде работает в SRAM побайтово читает/пишет. Если пробовать из/в файл - виснет (даже на 20 байтах)
2Strijar
Я тоже через переходник usb<->rs232 все делал - usb напрямую даже не пробовал. Сейчас зашиты bootstrap & u-boot - вообще этой утилитой не пользуюсь, функционала u-boot хватает. Правда эта плата меня интересует как раз в плане применения на ней ос linux. Писать с нуля для таких достаточно мощных процессоров как-то непривлекательно :)