查看: 5010|回复: 6

SAM4S Xplained IAR V6.40 图解工程建设步骤心得分享

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

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-1-24 01:29:18 | 显示全部楼层 |阅读模式
    分享到:
    请大家看我的以前的一点测试,再接着读下问,当然也可以直接读下文.
    其实到这里还是没我们自己的一点代码在运行,要运行自己的代码,必须自己写代码啦,我已经事先装的有IAR FOR ARM V6.40版本。这个版本的IAR直接支持Atmel SAM-4S XplainedSAM4S16C这个芯片。
    使用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 我是复制ATMELdemo里的。
    6:在 Assembler 选项,同样找到preprocessor 这个选项,填入各种头文件联结地址目录结构。下边的defined symbols 填入和 C/C++ Compiler一致的defined symbols即可。
    7:在linker选项的config里要填入 SAM4S16Cflash.icf结构文件,这个文件定义了SAM4S16C RAM FLASH 及一个存储器的地址等组织情况。这个也是我从demo里复制过来的,指定好路径既可,否则make的时候无法生成*.out的烧写文件的。
    8debugger 选项。选择好使用的仿真器 JLINK就好了。如果想要主程序跑到main 勾选 run to main 选项。这个不多说了。
    9J-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,还看了SAM4SC16datasheet看端口寄存器都几十个,看的头大,最后找了几个主要和输出有关系的,进行控制。
    接下来准备驱动下IL9325TFT LCD,有结果,一定上传代码,和大家一起交流。
    未命名9.jpg
    未命名10.jpg
    未命名11.jpg
    未命名12.jpg
    未命名13.jpg
    未命名14.jpg
    未命名15.jpg
    未命名16.jpg
    未命名17.jpg
    未命名18.jpg
    未命名19.jpg
    未命名20.jpg

    test_4s.rar

    4.51 MB, 下载次数: 34

    测试代码

    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-1-24 08:26:42 | 显示全部楼层
    楼主这么勤快……
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-1-24 09:09:52 | 显示全部楼层
    很好很强大,多谢楼主分享!
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-1-24 10:58:47 | 显示全部楼层
    分享是快乐之本嘛
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-1 00:17
  • 签到天数: 171 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-2-22 13:00:55 | 显示全部楼层
    mark                     
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-2-23 21:15:02 | 显示全部楼层
    maxiang615 发表于 2013-2-22 13:00
    mark

    希望对你有用哦
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.8]以坛为家I

     楼主| 发表于 2013-5-28 01:01:44 | 显示全部楼层
    tingting 发表于 2013-5-22 09:21
    多多分享   多多学习

    呵呵,一起交流哦,亲
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 14:25 , Processed in 0.182518 second(s), 27 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.