Сегодня стер датафлешку перемычкой J12. Соответственно пытаюсь залить бутстрап через самбу, но вылезает следующая ошибка при попытке выполнения скрипта "Enable dataflash on CS0".
Собственно вопрос - с чем может быть связана данная ошибка ?
К плате подключаюсь через родной ком-порт, самба используется которая шла на авторском диске.
И еще второй вопрос - как без стирания флеши подключиться к плате через самбу ?
хм.. а зачем что-то сразу стирать?
перемычками можно отключить Dataflash и Nand, включаем питание, запускаем Самбу, выбираем порт для работы и тип платы, коннектимся..
если коннект успешен, ставим перемычку назад, активируем флеш и тыды..
к слову, у меня через Serial Самба валилась и глючила, но вполне нормально шьет через USB соединение
Чтобы сразу прояснить ситуацию : я - программист, который первый раз сталкивается с платформой арм9. Наша текущая задача - собрать макет на данной плате, для заказа собственной. Соответственно моя задача - освоить то что есть по максимуму.
1. Я прекрасно понимаю какие перемычки для чего служат, но когда я отключал перемычки на датафлеш и на нанд - у меня при инициализации писалось, что датафлеш перешла в бинари мод, но никак не в самба (RomBOOT>). Подозрение на то, что на определенную ножку не подается 1 (или 0 ,сейчас пишу из дома, не могу сказать конкретно на какую, ибо не специалист, приду на работу скажу). Поэтому собственно было принято кардинальное решение на полный резет.
2. USB драйвер не устанавливается, т.к. драйвер не под эту плату. VID не совпадает с атмеловским. Если туплю, то поправьте.
ЗЫ Огромное спасибо, Jury093, в очередной раз за ответ, но все же жду ответ от Павла =)
хы.. я стирать _часть_ флеша первой платы собрался с духом с месяц после покупки. Во-первых - некспеху (не уверен что правильно написал слово) было, во-вторых - зачем стирать сразу все, не имея возможности для восстановления. Интеграл лучше брать по частям (С) не мой..
Чтобы сразу определиться, спрошу - какой тип АРМа на плате - XE512 или 9260?
По-любому, на диске из комплекта, должно лежать все необходимое для восстановления. Надо просто внимательно поискать и почитать, не все очевидно - сам проходил и знаю :)
Если вся периферия на "стандартных" местах, то слово плата тут не причем.. Самба работает напрямую с АРМ, подгружая в него маленькие модули, через которые может управлять периферией. Имеет смысл сходить на atmel.com и вытянуть последнюю версию (вроде 1.13).
Упс.. похоже у вас XE512.. все равно надо "достучаться" до проца. Я, когда пытался подсоединиться, правил пару файлов в каталоге самбы..
Проще пролистать pdf на Самбу в разделе доступа к XE512, вероятно надо еще отключать доступ к внутреннему флешу.
Как достучатся самбой не стирая внутреннюю флешку AT91SAM9XE512 я не знаю, но можно по JTAG. Правда вступает в силу другой момент - странности самбы, которая может нормально работать с устройствами через один интерфейс и писать с ошибками через другой, из собственного опыта (если писать большие файлы) кроме как через USB самба толком не работает ...
Сегодня провел день за изучением внутренней архитектуры процессора, соответственно появились вопросы :
1. Непосредственно к Павлу. Насколько я понимаю, разомкнув перемычку, я стер флеш 512кб, которая находится непосредственно в MCU.
а)Собственно первый вопрос вот в чем - на этой флеше что конкретно находилось - бутстрап или микрокод, который джампит загрузку на датафлеш ?
б) Ножка 42 являющаяся TST, которая отвечает за переход SAM-BA<->"Fast Flash Programming Interface" висит в воздухе, это так и должно быть ?
2. Вопросы ко всем =)
а) При размыкании джампера J12 судя по документации, я не только стер флеш, но и перевел третий бит GPNVM в ноль, а это значит что загрузка происходит из области 0x0 (SAM-BA), а не 0x200000 (Flash). Вопрос - как через самбу изменить этот бит ? А точнее где эта переменная расположена ?
б) Прочел документацию по системе команд самбы, и общался с ней через терминал (собственно сначала прошелся снифером ком-порта по атмеловской утилите, а потом утвердил теории мануалом). На MCU есть две области памяти : 0x200000 - это флешка и 0x300000 - это SRAM. Вопрос вот в чем - почему при записи в область флеши данные не записываются, а в SRAM все проходит замечательно ? Область flash получается чем-то заблокированной ?
1а) бутстрап это микрокод который не джампит а копирует содержимое внешнего накопителя (в частности датафлешки) в память и запускает его
1б)
2a) в самбе, там спец. скрипты этому посвящены ...
2б) в самой самбе, перед обращением к внутренней флешке, запускается процес инициализации ...
Все, сегодня правдами и неправдами проинсталил USB драйвер, ну и собственно все заработало =)
Конечно моих проблем это не решило, т.к. хотелось написать софт, который через ком-сервер сразу бы автоматом программировал, расставлял S/n, маки и т.п. на нескольких платах. Самое обидное,что через usb ничего снифером не снимешь, но еще как говориться не вечер, еще не все мануалы и исходники скурены.