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

 
 
 
Reply to this topicStart new topic
> Linux, LPC1343 Не работает прошивка с помощью встроенного USB загрузчика
brunql
сообщение Oct 30 2010, 18:02
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 12-09-10
Из: Krasnodar
Пользователь №: 59 434



Суть проблемы: не работает прошивка LPC1343 по USB в Linux

Есть плата LPCXpresso, допаяны miniUSB, LM1117(3.3V), кнопки сброса контоллера, сброса в загрузчик, схема софтового подключения к USB шине (USB_CONNECT) и светодиод сигнализирующий о подключении к USB шине (сброс и USB как здесь: http://www.microbuilder.eu/projects/LPC134...nceDesign.aspx).
Через UART прошивается без проблем.

Попробую прошить через встроенный USB загрузчик:
Скомпилил пример из поставки Keil (C:\Keil\ARM\Boards\Keil\MCB1000\USBMem). Получил .\Obj\Memory.axf. Бинарник делаю так:
Код
fromelf --bin ".\Obj\Memory.axf" --output ".\Obj\Memory.bin"

Обновление CRC (нужно ли?):
Код
lpcrc.exe Memory.bin


Подключаю девайс к USB. Пин USB-VBUS подтянут к VCC(4,5V).
Сбрасываю девайс в бутлоадер (сажаю кнопкой одновременно через диоды пины RESET и ISP на GND).
Определяется 'CRP DISABLD';
dmesg:
Код
[29815.920197] usb 3-3: new full speed USB device using ohci_hcd and address 17
[29816.168944] usb 3-3: configuration #1 chosen from 1 choice
[29816.174430] scsi19 : SCSI emulation for USB Mass Storage devices
[29816.175288] usb-storage: device found at 17
[29816.175297] usb-storage: waiting for device to settle before scanning
[29821.170615] usb-storage: device scan complete
[29821.176520] scsi 19:0:0:0: Direct-Access     NXP      LPC134X IFLASH   1.0  PQ: 0 ANSI: 0 CCS
[29821.178515] sd 19:0:0:0: Attached scsi generic sg3 type 0
[29821.193999] sd 19:0:0:0: [sdc] 68 512-byte logical blocks: (34.8 kB/34.0 KiB)
[29821.198436] sd 19:0:0:0: [sdc] Write Protect is off
[29821.198443] sd 19:0:0:0: [sdc] Mode Sense: 03 00 00 00
[29821.198446] sd 19:0:0:0: [sdc] Assuming drive cache: write through
[29821.228466] sd 19:0:0:0: [sdc] Assuming drive cache: write through
[29821.228485]  sdc:
[29821.269754] sd 19:0:0:0: [sdc] Assuming drive cache: write through
[29821.269762] sd 19:0:0:0: [sdc] Attached SCSI removable disk


Удаляю прошивку, которая была, копирую новую и отключаю девайс:

Код
rm "/media/CRP DISABLD/firmware.bin"
cp Memory.bin "/media/CRP DISABLD/"
umount "/media/CRP DISABLD/"


Сбрасываю контоллер (RESET на GND кнопкой). Контроллер молчит, хотя должен подключиться к USB. Из чего делаю вывод что прошивка либо криво прошилась, либо совсем не прошилась.

Сбрасываю девайс в бутлоадер (RESET и ISP на GND). Копирую то, что записалось:
Код
cp "/media/CRP DISABLD/firmware.bin" firmware_device.bin


Смотрю в hexedit на firmware.bin и на firmware_device.bin, начала совпадают (чисто визуально), в тексте firmware_device.bin виднеется кусок файла README.TXT, который должен лежать на девайсе (mass storage class):

Код
.........................This is
a USB Memory Device demonstratio
n for..the Keil MCB1000 Board wi
th a NXP LPC1343................

Остатки файла firmware_device.bin забиты 0xFF. По мне так все вроде логично, но почемуто не работает. Ну да ладно, прошиваю девайс через UART, чтобы сравнить рабочую версию прошивки с не рабочей, ребутю девайс в USB загрузчик, копирую прошивку:

Код
cp "/media/CRP DISABLD/firmware.bin firmware_device_work.bin"


Сравниваю MD5 суммы, не совпадают, открываю файлы firmware_device.bin и firmware_device_work.bin в hexedit, сравниваю визуально: первые 1024 байта совпадают (до адреса 0x400), далее некий сдвиг, то что должно быть лежать по адресу 0x0C00 лежит 0x1000, т.е. после 0x400 идут 2kB рабочей прошивки, а у нерабочей 3kB непонятно чего, далее все одинаково.
0x2BF4 - адрес последнего байта рабочей прошивки (залитой по UART), далее все 0xFF
0x3000 - адрес последнего байта НЕ рабочей прошивки (залитой по USB), далее все 0xFF

Как правильно заливать прошивку в LPC1343 с помощью встроенного USB загрузчика в linux?
В XP прошивается без проблем.

Thank you for your time.




UPDATE:

Гугл помассировал...
Такая же проблема: http://www.spinics.net/lists/linux-usb/msg34004.html
Решение проблемы: http://www.spinics.net/lists/linux-usb/msg34107.html

sudo mdel -i /dev/sdc ::/firmware.bin
sudo mcopy -i /dev/sdc firmware.bin ::/
sudo umount /dev/sdc
Go to the top of the page
 
+Quote Post
segment
сообщение Oct 30 2010, 18:54
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



Да вроде правильно заливаешь. Сначала fromelf делам бинарник, а потом прописываем контрольную сумму lpcrc или любой другой, их несколько, но работают одинаково. Так что работать должно.

Настройки проекта для этого камня проверь
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 10:43
Рейтинг@Mail.ru


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