Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: wiggler, linux, openocd и доступ к LPT
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Brain13
Доброго времени суток.
Решил заняться МК stm32 под ubuntu 10.10. Собрал openocd с флагами --enable-parport_ppdev --enable-parport --enable-maintainer-mode. Запускаю и вижу следующее:
Код
$ sudo openocd -f interface/parport.cfg -f target/stm32.cfg
Open On-Chip Debugger 0.4.0 (2010-12-10-15:43)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
parport port = 0x378
100 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
Error: cannot open device. check it exists and that user read and write rights are set. errno=2
Command handler execution failed


Я так понимаю, что openocd не может получить доступ к LPT. Пробовал адреса 0x378 и 0x278, эффект такой же. Когда wiggler отключен то же самое.
Как можно решить проблему?
ReAl
На прямые адреса без рутовых полномочий он не долезет.
--enable-parport_ppdev - возможность обращения к /dev/parport0 вместо прямого адреса.
Группа для /dev/parport0 должна быть lp и включить пользователя в эту группу, тогда можно обойтись без рутовых полномочий.
Brain13
Цитата(ReAl @ Dec 10 2010, 23:35) *
На прямые адреса без рутовых полномочий он не долезет.
--enable-parport_ppdev - возможность обращения к /dev/parport0 вместо прямого адреса.
Группа для /dev/parport0 должна быть lp и включить пользователя в эту группу, тогда можно обойтись без рутовых полномочий.


Так я вроде с рутовскими лезу...
Исправил в parport.cfg адрес на 0, он мне выдал
Код
sudo openocd -f interface/parport.cfg -f target/stm32.cfg -f /home/brain/myopenocd.cfg
Open On-Chip Debugger 0.4.0 (2010-12-10-15:43)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
parport port = 0x0
100 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
Info : clock speed 100 kHz
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints

Ща полезу в даташит узнавать те ли это значения. А с /dev/parport0 надо будет попробовать, ето удобнее.
А почему hardware has 6 breakpoints, 4 watchpoints, я ж никакие брейки не ставил, или это он говорит про физические ограничения?
ReAl
Тю, интересно. Может, он число 0 именно как просьбу полезть на /dev/parport0 и воспринял, у меня в avreal в ключе -p числа 1,2,3 означают номер LPT, а «большие» числа — адрес.

И, возможно, у Вас LPT и не на 0x378 и не на 0x278 и в
Цитата
Error: cannot open device. check it exists and that user read and write rights are set. errno=2
проблема не в правах была, а в отсутствии утсройства на заданном адресе.

Гляньте
Код
cat /proc/sys/dev/parport/parport0/base-addr
Первое число — базовый адрес в десятичном формате.

Цитата(Brain13 @ Dec 10 2010, 22:42) *
А почему hardware has 6 breakpoints, 4 watchpoints, я ж никакие брейки не ставил, или это он говорит про физические ограничения?
Да, это возможности отлдочной аппаратуры в кристалле.
Brain13
Цитата(ReAl @ Dec 11 2010, 15:25) *
Тю, интересно. Может, он число 0 именно как просьбу полезть на /dev/parport0 и воспринял, у меня в avreal в ключе -p числа 1,2,3 означают номер LPT, а «большие» числа — адрес.

И, возможно, у Вас LPT и не на 0x378 и не на 0x278 и в
проблема не в правах была, а в отсутствии утсройства на заданном адресе.

Гляньте
Код
cat /proc/sys/dev/parport/parport0/base-addr
Первое число — базовый адрес в десятичном формате.

Да, это возможности отлдочной аппаратуры в кристалле.

Адрес 0x378.
Код
$ cat /proc/sys/dev/parport/parport0/base-addr
888    1912


Сейчас еще проблема, у меня камень не хочет входить в состояние halted.
Консоль с openocd.
Код
sudo openocd -f interface/parport.cfg -f target/stm32.cfg -f /home/brain/myopenocd.cfg
[sudo] password for brain:
Open On-Chip Debugger 0.4.0 (2010-12-10-15:43)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
parport port = 0x0
100 kHz
jtag_nsrst_delay: 333
jtag_ntrst_delay: 333
Info : clock speed 100 kHz
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints

Консоль telnet.
Код
$ telnet 127.0.0.1 4444
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Open On-Chip Debugger
>
> targets
    TargetName         Type       Endian TapName            State      
--  ------------------ ---------- ------ ------------------ ------------
0* stm32.cpu          cortex_m3  little stm32.cpu          reset
> halt      
Halt timed out, wake up GDB.
timed out while waiting for target halted
Command handler execution failed
in procedure 'halt' called at file "command.c", line 650
called at file "command.c", line 361
> targets
    TargetName         Type       Endian TapName            State      
--  ------------------ ---------- ------ ------------------ ------------
0* stm32.cpu          cortex_m3  little stm32.cpu          reset
>

Brain13
Код
Сейчас еще проблема, у меня камень не хочет входить в состояние halted.


Проблема решена, корпус кнопки коротил RESET на землю.
Заливка программы и отладка работает! Всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.