Atmel SAM4S Xplained IAR V6.40 图解工程建设

作者: xiaopaohu123
上传时间为: 2014-08-04 07:38 AM
2014-08-04
阅读:

SAM-4S Xplained评估套件是一款基于Atmel公司SAM4S16微控制器的硬件评估平台。该套件提供了大范围的特性,使得Atmel的 ARM?SAM4S16用户可以马上使用SAM4S16外围设备进行开发,并理解如何将SAM4S整合在他们自己的设计中。本文将介绍SAM4S Xplained如何在IAR V6.40中建设图解工程。

本文将向大家介绍如何在SAM-4S Xplained评估板上建设图解工程。要建设图解工程,需要事先装有IAR FOR ARM V6.40版本,这个版本的IAR直接支持Atmel SAM-4S Xplained上SAM4S16C这个芯片。

使用IAR打开了一个asf-standalone-archive-3.5.1.62里面工程sam4s_xplained_qtouch_demo_flash.ewp 研究下工程文件的结构。逐级打开文件的目录,仔细分析。发现CMSIS目录下有3个文件。

exceptions.c、system_sam4s.c、startup_sam4s.c明显是初始配置启动文件。有了这3个文件再加个main文件就可以组成一个工程了。

1、于是新建了一个 文价夹 test_4s,下面建了3个子文件夹 user  CMSIS  component  和ATMEL公司的工程摸板近似保持一致。

按照 sam4s_xplained_qtouch_demo_flash.ewp设置文件路径什么的复制启动文件配置文件到对应目录。

2、开启IAR 新建立一个工程test_4s  保存于user目录下。工程目录里面设置了CMSIS common driver user output(自动的)等目录。

3、在CMSIS里添加刚才的3个启动文件。 Driver里随便搞了个pio.c  User里弄了个空函数main.c 具体内容等下再写哦。

4、打开 test_4s options 进行工程设置。首先选择芯片 当然就是SAM4SC16了。这个不要搞错的。

5、在 C/C++ Compiler 选项找到preprocessor 这个选项,填入各种头文件联结地址目录结构。下边的defined symbols 我是复制ATMEL的demo里的。

6、在 Assembler 选项,同样找到preprocessor 这个选项,填入各种头文件联结地址目录结构。下边的defined symbols 填入和 C/C++ Compiler一致的defined symbols即可。

7、在linker选项的config里要填入 SAM4S16C的flash.icf结构文件,这个文件定义了SAM4S16C的 RAM ,FLASH 及一个存储器的地址等组织情况。这个也是我从demo里复制过来的,指定好路径既可,否则make的时候无法生成*.out的烧写文件的。

8、debugger 选项。选择好使用的仿真器 JLINK就好了。如果想要主程序跑到main 勾选 run to main 选项。这个不多说了。

9、J-LINK/J-trace  选项 只在setup里选择好JLINK的接口类型和速度,我选择了个自动适应的速度。大家可以看着选择。

10、我的工程文件很简单,只在main函数里添加了几行控制LED闪烁的代码,采用积存器直接控制的方式。

#include "PIOC.h"
#include "SAM4S16C.h"
void mdelay(unsigned int timer)
{
unsigned int i,j;
for(i=0;i<timer;i++)
{
for(j=0;j<1300;j++);//不怎么准,意思一下哦
}
}
//LED1 PC10
//LED2 PC17
int main(void)
{
REG_PIOC_PER |=(0x00000001<<10) | (0x00000001<<17);//使能 PIN LED1 PC10 LED2 PC17
REG_PIOC_OER |=(0x00000001<<10) | (0x00000001<<17);//使能输出 LED1 PC10 LED2 PC17
while (1)
{
REG_PIOC_SODR  |=(0x00000001<<10) | (0x00000001<<17);//置位输出
mdelay(500);
REG_PIOC_CODR  |=(0x00000001<<10) | (0x00000001<<17);//清楚输出
mdelay(500);
}
}

编译通过,没有错误。

11、点IAR的下载仿真按纽,download 仿真开始,PC指针跳到main函数的第一句程序代码这里。按step单步,程序顺利执行,可以看到板子上的指示灯轮流亮灭。

至此,整个最简单的测试完成。

后记,虽然写的很简单,但是做起来还是很麻烦的,尤其的第一次建立工程,数不完的错误,一个接一个,大部分是头文件的包含和调用什么的引起的,排除一个出一堆,楼主我弄了好几个晚上才彻底搞定了,几乎累的吐血,说的夸张了点。为了操作LED,还看了SAM4SC16的datasheet看端口寄存器都几十个,看的头大,最后找了几个主要和输出有关系的,进行控制。

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示