查看: 1004|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-8-4 07:38:41 | 显示全部楼层 |阅读模式
    分享到:
    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 &quotIOC.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 PC17int main(void){REG_PIOC_PER |=(0x00000001<<10) | (0x00000001<<17);//使能 PIN LED1 PC10 LED2 PC17REG_PIOC_OER |=(0x00000001<<10) | (0x00000001<<17);//使能输出 LED1 PC10 LED2 PC17while (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看端口寄存器都几十个,看的头大,最后找了几个主要和输出有关系的,进行控制。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 19:40 , Processed in 0.120290 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.