查看: 7979|回复: 15

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

[复制链接]
  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-1-15 19:49:44 | 显示全部楼层 |阅读模式
    分享到:
                                        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只是其中很渺小的一个。在研究了一小段时间后,开始做移植修改工作。这个图是我在资源管理器打开的截图,可以看到它的文件夹内容众多。 20130115191828429.jpg
    目前移植的模板主要来源于COMMON和SAM这两个大文件下面,里面的内容也很多。
    将这两个文件夹内容单独放到一个文件夹下面做修改,仅保留与SAM4S XPLAINED相关的文件,还有140多M,打开一个工程文件就会发现,其/H文件众多,调用更是频繁,无法单独去掉任何其中一个文件夹或内容。无奈之余,只好先把一个工程名文件单独拿出来,然后不断编译,将提示没有的/H文件再拷进去,仅这个折腾就花了两个晚上。在调试编译顺利通过后,才开始去修理主函数和各种不像保留的文件。这个工作也是个折腾人的活,性子急的大哥略过。经过折腾后,顺利编译的话,那恭喜,可以进行下一步了。然后,才是编写一些最基本的调试函数的活。
           下面是原工程文件与现在模板文件对比:
           1-图 原工程模板
              20130115193037179.jpg
            2--现有工程模板
                 20130115183413164.jpg
           这个工程模板虽然也不是很完善,但至少是一个成熟的模板,如果哪位兄弟也有兴趣采用IAR去开发这个板子的话,我相信这个模板已经为你省下了一些折腾的时间,呵呵。下面是工程模板图片。
           20130115183217687.jpg
          
         看到这些文件夹名字后,就会知道这些里面放了什么文件。LIB文件夹是放最顶层库文件的地方,只在里面放置了部分驱动。driver文件夹下面放置自己编写的驱动文件,目前只有LED/UART/SYSTTICK/KEY四个文件。今天在此模板上发挥了一下,实现了一个用户中断按键的处理,并将信息实时显示在串口上。效果图如图所示:
          20130115154250296.jpg
         有了此模板,今天以后就可以实施方案中的设计了,不过,在调试串口UART1是发现板子的J1-J410个引脚竟然是相同的,这样无形中又减少了四个GPIO口,使原本引出引脚不多的SAM4S XPLD相形见绌,竟然只有可怜的12个了,呵呵。
          驱动LCD屏,又想要理想的速度,最少得16号线,那么怎么办呢?敬请期待吧!




          
             
             
            


    SAM4S--IAR-工程模板.rar

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

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2015-8-7 21:35
  • 签到天数: 340 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-1-15 20:01:47 | 显示全部楼层
    支持……fengye!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-28 16:20
  • 签到天数: 980 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-1-15 20:08:30 | 显示全部楼层
    支持……                     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 4094 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    发表于 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的问题,我也不知道如何解决,
    还希望你的指点!
    打扰你宝贵的时间,望大师帮忙!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 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
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 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.)
    看情况,这个错误,似乎跟这个界面设置有关,如果你的电脑不成功,那就换台电脑试试吧。我发了一个工程模板,里面有个按键和串口输出的例子,可以下载一下,看看能不能行。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 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 ...

    大师很用心哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-25 12:42
  • 签到天数: 692 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-1-17 16:02:08 | 显示全部楼层
    tina 发表于 2013-1-17 14:10
    大师很用心哦

    TINA管理员,好久不见了哦,铜板这么多,太强了啦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2013-1-24 12:15
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-1-18 23:34:13 | 显示全部楼层
    flash没有擦除干净吧。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-1-19 22:42:39 | 显示全部楼层
    准备用楼主的摸班调试下自己的板子啦
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-20 13:12 , Processed in 0.196963 second(s), 35 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.