15回答

0收藏

【枫叶分享】--ATMEL SAM4S XPLD开发板IAR 环境下工程模板发布

其他 其他 8697 人阅读 | 15 人回复 | 2013-01-15

                                    ATMEL SAM4S XPLD开发板IAR 环境下工程模板发布
          经过一段时间的试用,对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例程,也有启动文件,昨天看到论坛的一位老兄自己在做启动文件,那样太浪费时间了,不是很支持这种做法,有些中断变量一旦编写错误,会为以后调试带来隐患。
         第二,ATMEL的ASF3.5.1修改很不容易。这个程序包安装完毕后有几百M大小,里面包含了ATMEL麾下各种开发板的资源定义和例程包,SAM4S XPLAINED只是其中很渺小的一个。在研究了一小段时间后,开始做移植修改工作。这个图是我在资源管理器打开的截图,可以看到它的文件夹内容众多。

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

        2--现有工程模板
            

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

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

     有了此模板,今天以后就可以实施方案中的设计了,不过,在调试串口UART1是发现板子的J1-J410个引脚竟然是相同的,这样无形中又减少了四个GPIO口,使原本引出引脚不多的SAM4S XPLD相形见绌,竟然只有可怜的12个了,呵呵。
      驱动LCD屏,又想要理想的速度,最少得16号线,那么怎么办呢?敬请期待吧!




      
         
         
        


SAM4S--IAR-工程模板.rar

500.27 KB, 阅读权限: 1, 下载次数: 41

分享到:
回复

使用道具 举报

回答|共 15 个

倒序浏览

沙发

kk5290122

发表于 2013-1-15 20:01:47 | 只看该作者

支持……fengye!
板凳

mcp2013

发表于 2013-1-15 20:08:30 | 只看该作者

支持……                     
地板

shenwen2011

发表于 2013-1-16 23:41:57 | 只看该作者

大师,你好,今天我又做了一次test程序的实验,logfile文件右边了,出现了不同错误,本人实在费解,很长时间也没有弄通,再请教你一下!下面是我的logfile:
-I- Waiting ...
-I- TCL platform : Windows NT
-I- SAM-BA 2.11  on : windows
-I- Active sam-ba PID  2320 killed
-I- Retrieved arguments from command line :
-I- argv 0 : \jlink\ARM0
-I- argv 1 : at91sam4s16-ek
-I- argv 2 : SAM4S_XPLD_Programming.tcl
0
\jlink\ARM0
-I- Connection : \jlink\ARM0 (target(comType) = 2)
-I- Board : at91sam4s16-ek
-I- Traces Level : 4
-I- target(handle) : 17740688
Read device Chip ID at 0x400e0640 --- get 0x00000000
Read device Chip ID at 0x400e0740 --- get 0x28ac0ce0
-I- Found processor : at91sam4s16 (Chip ID : 0x28ac0ce0)
sourcing device file D:/ATMEL Corporation/sam-ba_2.11/sam-ba.exe/../tcl_lib/devices/at91sam4s16.tcl
sourcing board description file D:/ATMEL Corporation/sam-ba_2.11/sam-ba.exe/../tcl_lib/at91sam4s16-ek/at91sam4s16-ek.tcl
-I- Loading applet applet-lowlevelinit-sam4s16.bin at address 0x20000800
-I- Memory Size : 0x2 bytes
-I- Buffer address : 0x4
-I- Buffer size: 0x0 bytes
-I- Applet initialization done
-I- Low level initialized
-I- Loading applet applet-flash-sam4s16.bin at address 0x20000800
-I- Memory Size : 0x100000 bytes
-I- Buffer address : 0x20002054
-I- Buffer size: 0x1DA00 bytes
-I- Applet initialization done
-I- FLASH initialized
-I- Command line mode : Execute script file : SAM4S_XPLD_Programming.tcl
-I- === SAM4S-xplained software Programming ===
-I- === Init internal Flash ===
-I- Loading applet applet-flash-sam4s16.bin at address 0x20000800
-I- Memory Size : 0x100000 bytes
-I- Buffer address : 0x20002054
-I- Buffer size: 0x1DA00 bytes
-I- Applet initialization done
-I- === Erase internal Flash ===
-I- GENERIC::EraseAll
-E- Generic::EraseAll returned error (Applet Erase command has not been launched (-E- Timeout: The applet did not return. Please check the connection and reconnect the target device.))
-I- === Send executable bin into Flash ===
-I- === Chang GPNVM to Boot from Flash ===
-E- Script File SAM4S_XPLD_Programming.tcl returned error : Applet GPNVM command has not been launched (-E- Timeout: The applet did not return. Please check the connection and reconnect the target device.) - Applet GPNVM command has not been launched (-E- Timeout: The applet did not return. Please check the connection and reconnect the target device.)
    while executing
"error "Applet GPNVM command has not been launched ($dummy_err)""
    (procedure "FLASH::ScriptGPNMV" line 70)
    invoked from within
"FLASH::ScriptGPNMV 2"
    (file "SAM4S_XPLD_Programming.tcl" line 46)
    invoked from within
"source $scriptFile"
文件中显示了错误,但是我对此错误不知道如何解决,上回你提到uart0的问题,我也不知道如何解决,
还希望你的指点!
打扰你宝贵的时间,望大师帮忙!
5#

fengye5340-272571

发表于 2013-1-17 10:36:44 | 只看该作者

本帖最后由 fengye5340 于 2013-1-17 10:39 编辑
shenwen2011 发表于 2013-1-16 23:41
大师,你好,今天我又做了一次test程序的实验,logfile文件右边了,出现了不同错误,本人实在费解,很长时 ...


你好,本人也是这方面的新手,大师真不敢当,看到你测试过程的LOG,不知道你在擦除FLASH的时候,时间充足吗?还有你打开SM-BA的时候,会出现那个程序界面吗?我在烧写程序过程中,也出现过类似的错误,只要多试几遍,就好了。
你在测试过程中,一定看到这个界面出现,才能行,界面图片:

10.jpg (118.55 KB, 下载次数: 124)

10.jpg
6#

fengye5340-272571

发表于 2013-1-17 10:43:23 | 只看该作者

-E- Script File SAM4S_XPLD_Programming.tcl returned error : Applet GPNVM command has not been launched (-E- Timeout: The applet did not return. Please check the connection and reconnect the target device.) - Applet GPNVM command has not been launched (-E- Timeout: The applet did not return. Please check the connection and reconnect the target device.)
看情况,这个错误,似乎跟这个界面设置有关,如果你的电脑不成功,那就换台电脑试试吧。我发了一个工程模板,里面有个按键和串口输出的例子,可以下载一下,看看能不能行。
7#

噗噗熊

发表于 2013-1-17 14:10:45 | 只看该作者

fengye5340 发表于 2013-1-17 10:43
-E- Script File SAM4S_XPLD_Programming.tcl returned error : Applet GPNVM command has not been launch ...

大师很用心哦
8#

fengye5340-272571

发表于 2013-1-17 16:02:08 | 只看该作者

tina 发表于 2013-1-17 14:10
大师很用心哦

TINA管理员,好久不见了哦,铜板这么多,太强了啦
9#

w453114735

发表于 2013-1-18 23:34:13 | 只看该作者

flash没有擦除干净吧。。
10#

xiaopaohu123

发表于 2013-1-19 22:42:39 | 只看该作者

准备用楼主的摸班调试下自己的板子啦
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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