基于SAM4S-XPLAINED开发板IAR 环境下建立工程模板

作者: fengye5340
上传时间为: 2014-12-24 08:59 AM
2014-12-24
阅读:

         经过一段时间的试用,对ATMEL SAM4S XPLD开发板有了一定的理解和认识,特别是其开发环境和固件库,有了更加深刻的认识。ATMEL SAM4S XPLD这个开发板属于ATMEL的新品,除了官网的资料外,网上能找到的资料几乎很少。不像TI和ST那样,资料满地都是,入手也比较方便。可以说,这个开发板想顺利入手并不容易。

          第一, ATMEL的开发环境搭建起来不是很容易。其开发环境选择的是ATMEL STUDIO6和IAR。用过AVR的人,对这个环境应该不陌生。同时,大部分人对IAR也很熟悉,甚至非常偏爱。 SAM4S XPLD这个板子上的MCU型号是SAM4S16C,这个型号只有最新的IAR6501才有的支持,目前这个版本还没有和谐文件出来,一个不和谐的东西,不会深得广大工程师喜爱的,呵呵。所以,ATMEL干脆弄了个IAR FOR 6201的固件库补丁,打上这个补丁后,用户可以装上IAR6201以上版本的就可以识别SAM4S16C这个型号了。花了两个晚上的时间去理解这个固件包,也没有理出头绪来,因为里面缺少好多东西,比如启动文件。后来还是直接转向了KEIL开发环境。KEIL MDK这个作为大众喜爱的开发工具,ATMEL竟然没有固件库去支持它,也不知道ATMEL采取的是什么战略呢。KEILV4.6这个环境下,提供了对这个芯片型号的支持,并有了启动文件和系统配置函数,由于没有固件库的支持,以后开发起来还是非常麻烦,我在调试串口的时候就遇到了系统时钟配置的问题,如果这些宏定义文件单独写的话,时间上又不好估计,在其市场前景应用不明朗的情况下,花费大量的时间去移植得不偿失。从网上下载的STUDIO6 在WINXP SP2版本上又没法装,它要求至少是SP3版本,额外还要有些组件支持,这个对环境要求较高,这方面比如KEIL 和IAR了。后来在别人的电脑上装了这个软件,里面有个ASF向导工具,还是挺好用的,可以轻松实现一个软件模板出来。但这种开发环境,如果不是学生有时间去学习或以前专门用AVR开发的人员,用这个似乎还是不太顺手。最后,综合权衡考虑,将ASF3.5.1这个编程框架从ATMEL官网上下载下来,安装到电脑上,并搭建一个实用的IAR开发环境。ASF3.5.1下面提供了IAR例程,也有启动文件,昨天看到论坛的一位老兄自己在做启动文件,那样太浪费时间了,不是很支持这种做法,有些中断变量一旦编写错误,会为以后调试带来隐患。

           第二,ATMELASF3.5.1修改很不容易。这个程序包安装完毕后有几百M大小,里面包含了ATMEL麾下各种开发板的资源定义和例程包,SAM4S XPLAINED只是其中很渺小的一个。在研究了一小段时间后,开始做移植修改工作。这个图是我在资源管理器打开的截图,可以看到它的文件夹内容众多。         

          目前移植的模板主要来源于COMMON和SAM这两个大文件下面,里面的内容也很多。将这两个文件夹内容单独放到一个文件夹下面做修改,仅保留与SAM4S XPLAINED相关的文件,还有140多M,打开一个工程文件就会发现,其/H文件众多,调用更是频繁,无法单独去掉任何其中一个文件夹或内容。无奈之余,只好先把一个工程名文件单独拿出来,然后不断编译,将提示没有的/H文件再拷进去,仅这个折腾就花了两个晚上。在调试编译顺利通过后,才开始去修理主函数和各种不像保留的文件。这个工作也是个折腾人的活,性子急的大哥略过。经过折腾后,顺利编译的话,那恭喜,可以进行下一步了。然后,才是编写一些最基本的调试函数的活。下面是原工程文件与现在模板文件对比:         

          1-图原工程模板

         

2--现有工程模板

   

这个工程模板虽然也不是很完善,但至少是一个成熟的模板,如果哪位兄弟也有兴趣采用IAR去开发这个板子的话,我相信这个模板已经为你省下了一些折腾的时间,呵呵。下面是工程模板图片。

        看到这些文件夹名字后,就会知道这些里面放了什么文件。LIB文件夹是放最顶层库文件的地方,只在里面放置了部分驱动。driver文件夹下面放置自己编写的驱动文件,目前只有LED/UART/SYSTTICK/KEY四个文件。今天在此模板上发挥了一下,实现了一个用户中断按键的处理,并将信息实时显示在串口上。效果图如图所示:

       

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

创建讨论帖子

登录 后参与评论
系统提示