这个问题可能很明显,这是愚蠢的,但我没有想出答案。
我正在尝试为Atmel的sam4s xplained板制作一个简单的makefile项目。
我是ARM的新手,我对如何让工作变得有点迷茫。以下是我尝试让LED工作的原因:
/* Enable clock for PIOC. */
PMC->PMC_WPMR = PMC_WPMR_WPKEY_PASSWD;
PMC->PMC_PCER0 = PMC_PCER0_PID13; /* PIOC clock enable. */
/* Enable output for LED. */
PIOC->PIO_WPMR = PIO_WPMR_WPKEY_PASSWD; /* Enable writing to registers. */
PIOC->PIO_PER = PIO_PER_P10 | PIO_PER_P17; /* Enable pio 10, 17. */
PIOC->PIO_OER = PIO_OER_P10 | PIO_OER_P17; /* Set pio10 and 17 as output. */
PIOC->PIO_SODR = PIO_SODR_P10; /* Set pio10. */
PIOC->PIO_CODR = PIO_CODR_P17; /* Clear pio17 . */
但绝对没有任何反应。我错过了什么吗?
PIOC 10和17应该有用户LED。
电路板原理图: http://www.atmel.com/webdoc/sam4s16xplained/sam4s16xplained.boardScematics.section_ggo_tyg_xf.html
答案 0 :(得分:0)
问题不在于代码,而在Atmel用于编程电路板的工具中。我一直在使用SAM-BA在系统编程器对电路板进行编程,但由于某种原因,它无法改变闪存的内容。即使在内存视图中手动设置单个也会失败。
我尝试使用Seggers JLink软件并执行以下步骤:
在JLink终端中执行:
JLink> device at91sam4s16c
JLink> loadbin <target.bin>, 0x400000
有时我需要在编程之后重新设置电路板。使用Segger工具调试现在也可以使用。使用JLinkGDBServer启动gdb服务器并使用以下命令连接arm-none-eabi-gdb:
(gdb) target remote :2331
(gdb) file <target.elf>