Я бы предложил проверить, что ваша установка работает в первую очередь. Например, вы можете попробовать прочитать регистр CPUID, который присутствует на всех процессорах Cortex-M0 - см. Раздел 4.3 раздела Cortex™-M0 DevicesGeneric User Guide.
Он расположен по адресу 0xE000ED00 и должен содержать значение 0x410CC200. Если вы можете прочитать это, это будет хороший знак.
Сначала вы должны попробовать использовать команду J-Link, затем с GDB-сервером и GDB. Я выполнил процедуру в дальнейшем на плате Olimex, используя LPC1114/301 Cortex-M0. Я использовал программное обеспечение J-Link V5.10n и версию arm-none-eabi-gdb 7.10.1.20151217-cvs, которая является частью Linaro gcc 5.2 для пакета процессоров ARM Cortex-M.
Start JLink.exe, используя следующие параметры:
jlink.exe -if SWD -speed 4000 -AutoConnect 1 -device Cortex-M0
Вы должны увидеть что-то подобное:
SEGGER J-Link Commander V5.10n (Compiled Feb 19 2016 18:39:46)
DLL version V5.10n, compiled Feb 19 2016 18:39:11<br/>
Connecting to J-Link via USB...O.K.
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
Hardware version: V8.00
S/N: [My J-Link EDU Serial Number]
License(s): FlashBP, GDB
OEM: SEGGER-EDU
Emulator has Trace capability
VTref = 3.313V
Device "CORTEX-M0" selected.
Found SWD-DP with ID 0x0BB11477
Found Cortex-M0 r0p0, Little endian.
FPUnit: 4 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl 0 @ E00FF000
ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB008 SCS
ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 000BB00A DWT
ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 000BB00B FPB
Cortex-M0 identified.
J-Link>
Теперь вы можете прочитать регистр CPUID с помощью команды командира J-Link mem32, и проверьте, что регистр CPUID содержит ожидаемое значение:
J-Link>mem32 0xE000ED00,1
Вы должны получить:
E000ED00 = 410CC200
Если это так, то я бы сказал, что настроить ваш J-Link/Cortex-M0, скорее всего, функциональна. Теперь мы можем проверить, что GDB Server и GDB работают отлично.
Launch JLinkGDBServerCL.exe со следующими параметрами:
JLinkGDBServerCL.exe -if SWD -speed 4000 -device Cortex-M0
SEGGER J-Link GDB сервер V5.10n командной строки версии JLinkARM.dll V5.10n (DLL скомпилирован 19 февраля 2016 18:39:11)
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: off
Init regs on start: off
Silent mode: off
Single run mode: off
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: Cortex-M0
Target interface: SWD
Target interface speed: 4000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
Hardware: V8.00
S/N: [My J-Link EDU Serial Number]
OEM: SEGGER-EDU
Feature(s): FlashBP, GDB
Checking target voltage...
Target voltage: 3.31 V
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...
Не останавливайте сервер GDB и запустить GDB в другом сеансе консоли для Windows:
arm-none-eabi-gdb
GNU gdb (GNU Tools for ARM Embedded Processors) 7.10.1.20151217-cvs
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Теперь мы можем подключиться к БГДУ сервер и попытка отобразить содержимое регистра CPUID снова:
(gdb) target remote localhost:2331
Remote debugging using localhost:2331
0xfffffffe in ??()
(gdb) monitor halt
(gdb) monitor reset
Resetting target
(gdb) x/1xw 0xE000ED00
0xe000ed00: 0x410cc200
(gdb)
Если вы снова получаете 0x410cc200, ваш J-Link/Cortex-M0/GDB Server/установка GDB должен быть ФУНКЦИИ NAL, и теперь вы должны попробовать еще раз, чтобы читать ваш регистр АЦП, используя следующую команду:
x/1xw 0x40012708
Если бы вы были в состоянии прочитать CPUID регистр, но не регистр ADC, и если адрес регистра АЦП Правильно, у меня не было бы объяснения этого поведения прямо сейчас - знание точного бренда/модели для MCU, которое вы используете, может, конечно, помочь дальше.
Обратите внимание, что с этого момента вы должны указать точную модель вашего MCU в качестве аргумента для параметра -device J-Link Commander/GDB Server вместо Cortex-M0. Вы можете получить список, введя команду? в командной строке J-Link Commander.