婴儿步骤中的SAM4S初始化

时间:2015-05-09 21:29:02

标签: arm embedded microcontroller atmel

这个问题可能很明显,这是愚蠢的,但我没有想出答案。

我正在尝试为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

1 个答案:

答案 0 :(得分:0)

问题不在于代码,而在Atmel用于编程电路板的工具中。我一直在使用SAM-BA在系统编程器对电路板进行编程,但由于某种原因,它无法改变闪存的内容。即使在内存视图中手动设置单个也会失败。

我尝试使用Seggers JLink软件并执行以下步骤:

  1. 使用Atmel Studio 6更新主板上的JLink驱动程序(此步骤需要窗口)。
  2. 从Segger下载了适用于Linux的J-Link软件包:https://www.segger.com/jlink-software.html
  3. 使用JLinkExe对电路板进行编程,如下所示:
    1. 确保断开JP25 - 只有sam-ba需要。
    2. 通过usb与jtag连接器连接。
    3. 启动JLinkExe
  4. 在JLink终端中执行:

    JLink> device at91sam4s16c
    JLink> loadbin <target.bin>, 0x400000
    

    有时我需要在编程之后重新设置电路板。使用Segger工具调试现在也可以使用。使用JLinkGDBServer启动gdb服务器并使用以下命令连接arm-none-eabi-gdb:

    (gdb) target remote :2331
    (gdb) file <target.elf>