[SAM4N学习笔记]SAM4N工程模板搭建

1、须要安装的软件:

由于笔者是使用MDK-ARM开发的版本是4.72,因此须要安装这个工具,具体在哪里下载自行放狗或问度娘。除了这个重要工具觉得,还须要安装Atmel官方的Atmel Studio,为何安装这个软件呢?其实不安装也是能够的,可是不安装须要自备一条串口线,板上自带的USB CDC就不能用了,由于找不到驱动。安装Atmel Studio之后,会自动安装USB驱动,这事链接板子PC就识别并安装驱动了,安装好后在“设备管理器”中会看到枚举出以下两个设备:编程

wps_clip_image-3481wps_clip_image-10667

这里的COM8是本身PC枚举的,不一样的PC得出的端口号会不一样。若是有这两个,说明你的板子已经能够用了,若是只有前面一个,那也是能够下载程序的。工具

2、建立工程模板:

       关于软件的安装我就很少说了,都是一直点下一步就OK的。接下来开始搭建咱们的第一个工程,也就是所说的“工程模板”。下去我都是以这个为模板进行其余例程的开发。测试

       首先新建一个文件夹,命名为“工程模板”,打开文件夹,在里面依次创建“Applications”、“Drivers”、“CMSIS”、“Listing”和“build”五个文件夹,以下图:ui

wps_clip_image-2595

        简要说明一下他们的用途,Applications文件是用来存放用户应用程序的;Drivers用来存放开发的各类驱动;CMSIS存放芯片相关的文件,如启动文件等;build主要存放编译输出的一些文件;Listing用于存放连接输出的文件。3d

       创建好这些文件夹之后,咱们开始创建工程。启动MDK软件,点击菜单“Project”菜单下的“New uVision Project”新建一个项目,保存到工程模板文件夹下,项目名称为“Project”,选择CPU为Atmel公司的SAM4N16C,以下图:blog

wps_clip_image-14051

     点击“OK”完成工程建立。接下来要对工程进行一些配置,首先要把须要的芯片相关的头文件和启动文件复制到刚刚创建的“CMSIS”文件夹中。到哪里去复制芯片相关头文件好启动文件呢?这是不少人比较疑惑的事情。其实有两个方法能够拿到这些文件,第一种方法是到Atmel提供的软件包里面去找;还有一种是到MDK的安装目录里面去找。这里咱们选择后者。索引

     打开MDK的安装目录,在“\ARM\INC\Atmel\SAM4N”下面就是须要的头文件,以下图:ip

wps_clip_image-16793

在咱们的工程中的CMSIS文件夹下创建一个“include”子文件夹,并将这些头文件复制到该文件夹下;接下来是启动文件,打开“\ARM\Startup\Atmel\SAM4N”,有两个文件,一个是启动汇编,一个是C文件,里面有SAM4N启动时配置的一些操做,如时钟配置等。将这两个文件复制到“CMSIS”文件夹下的Source文件夹。也许有人会问,为何须要复制这些文件到工程中呢?这些是芯片必须的文件,其实不复制过来MDK也会本身去索引这些文件,可是这样作能够避免工程被拷贝到其余没有安装MDK或MDK版本低的地方还能够找到这些文件。开发

接下来要配置一下MDK工程的文件组,分别创建“Applications”、“CMSIS”和“Drivers”三个文件组,以下图:get

wps_clip_image-15425

同时给“Applications”添加一个新文件main.c,而后将“startup_SAM4N.s”和“system_SAM4N.c”文件添加到“CMSIS”文件组下,以下图:

wps_clip_image-21215

打开“Target Options”,选择输出文本到“output”标签,选择输出文件到“build”文件夹以下图:

wps_clip_image-13942

点击“Listing”标签,设置输出到“Listing”文件夹。点击“C/C++”标签,在“Define”中添加“__SAM4N16C__”宏定义,并在“Include Paths”中添加“Applications”、“CMSIS\include”和“Drivers”三个目录,以下图:

wps_clip_image-9167

点击“Debug”标签,选择使用“CMSIS-DAP Debugger”仿真器仿真,以下图:

wps_clip_image-10267

点击“Utilities”标签,勾选使用Debug Driver进行Flash编程,以下图。

wps_clip_image-14368

到此,新建的工程算是配置完成,接下来就是小试牛刀的时候了,打开main.c,开始代码的编写,看了一下数据手册,随便写了个代码测试,以下:

#include "sam4n.h"

#define LED_PIN   14

void delay(uint32_t x)

{

    uint32_t a, b;

    for (a = 0; a < 5000; a++)

    {

        for (b = 0; b < x; b++);

    }

}

int main(void)

{

    /*使能LED管脚*/

    PIOB->PIO_PER |= (0x01 << LED_PIN);

    /*使能LED管脚输出*/

    PIOB->PIO_OER |= (0x01 << LED_PIN);

    while (1)

    {

        /*输出低电平,点亮LED*/

        PIOB->PIO_CODR = (0x01 << LED_PIN);

        /*延时*/

        delay(300);

        /*输出高电平,关闭LED*/

        PIOB->PIO_SODR = (0x01 << LED_PIN);

        /*延时*/

        delay(300);

    }

}

点击编译,点击工具栏上的“Download”下载到板子,果真灯闪动起来了,还真是误打误撞,太easy了。

相关文章
相关标签/搜索