Brain13 0 10 декабря, 2010 Опубликовано 10 декабря, 2010 · Жалоба Доброго времени суток. Решил заняться МК 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 0 10 декабря, 2010 Опубликовано 10 декабря, 2010 · Жалоба На прямые адреса без рутовых полномочий он не долезет. --enable-parport_ppdev - возможность обращения к /dev/parport0 вместо прямого адреса. Группа для /dev/parport0 должна быть lp и включить пользователя в эту группу, тогда можно обойтись без рутовых полномочий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Brain13 0 10 декабря, 2010 Опубликовано 10 декабря, 2010 · Жалоба На прямые адреса без рутовых полномочий он не долезет. --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 11 декабря, 2010 Опубликовано 11 декабря, 2010 · Жалоба Тю, интересно. Может, он число 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 Первое число — базовый адрес в десятичном формате. А почему hardware has 6 breakpoints, 4 watchpoints, я ж никакие брейки не ставил, или это он говорит про физические ограничения?Да, это возможности отлдочной аппаратуры в кристалле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Brain13 0 11 декабря, 2010 Опубликовано 11 декабря, 2010 · Жалоба Тю, интересно. Может, он число 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 0 12 декабря, 2010 Опубликовано 12 декабря, 2010 · Жалоба Сейчас еще проблема, у меня камень не хочет входить в состояние halted. Проблема решена, корпус кнопки коротил RESET на землю. Заливка программы и отладка работает! Всем спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться