查看: 4434|回复: 3

驱动安装,软件使用及led_delay程序说明、编译、调试、下载

[复制链接]
  • TA的每日心情
    奋斗
    昨天 00:21
  • 签到天数: 4094 天

    连续签到: 5 天

    [LV.Master]伴坛终老

    发表于 2013-1-16 10:45:23 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 shenwen2011 于 2013-1-16 11:19 编辑

    在收到SAM4S Xplained评估板后,接下来就是软件的安装工作了!
    首先在atmel的官网上下载Atmel studio 6.0,我寻着前辈足迹,很快的找到了这个网址:http://www.atmel.com/tools/atmelstudio.aspx,然后点击下载Atmel Studio 6.0 with Service Pack 2 (build 1996) Installer – Full版本,这个有大约有800M大小!经过一段时间的下载,开始安装as6installer -6. 0. 1996 - net.exe,过一会会出现如下窗口。
    1.JPG
    总共要安装三个软件:Microsoft .NET Framework4.0 Full Profile、Microsoft Visual Studio Isolated Shell 10.0和Atmel USB Driver。下面就是安装过程中依次出现的安装界面。
           首先安装的是Microsoft .NET Framework4.0 Full Profile和Microsoft Visual Studio Isolated Shell 10.0,安装界面如下图。
    2.JPG
    4.JPG
    3.JPG
    5.JPG
    当上图界面结束之后,就是进入安装Atmel USB Driver的安装,安装如下图。

    6.JPG
    7.JPG
          在装完上面的的软件和驱动之后,接下来安装的就是重点——Atmel Studio 6.0了。如图所示。

    8.JPG
    9.JPG
    10.JPG
    11.JPG
    12.JPG
    在上图中我们可以看到Atmel Studio 6.0中有一些特点和包含的功能。
    13.JPG
    14.JPG

    15.JPG
    至此Atmel Studio 6.0就此安装完毕。接下来让我们来启动此软件,建立一个例程项目,完成编译、调试、下载。当我们打开Atmel Studio 6.0时,第一个见面就是一个启动界面,如下图所示。
    16.JPG

    之后进入Atmel Studio 6.0软件界面,如下图。
    17.JPG
    在上图中选择
    30.JPG
    建立例程项目,点击后出现如下图。
    18.JPG
    Atmel Studio 6.0在启动中,完成后是:
    19.JPG
    在上图界面中的Device Fmily栏中选择SAM4,32bit,在搜索栏中打入SAM4S Xplained,出现67个工程例程,我根据前人的提示,选择了Common Delay Service Example-SAM4S Xplained,显示如下图红框中所示。
    19.JPG
    之后点击OK,建立项目工程。如图下图所示。
    20.JPG

    21.JPG
    鼠标移到项目根目录上,点击右键,build项目,对项目进行编译,上图中第一个红框可以改变芯片型号,第二红框,显示是否连接上硬件,现在显示无连接状态,现在马上对评估板上电后显示如下:
    22.JPG
    编译通过后如下图所示。
    23.JPG

    之后点击start Debugging and Break,下载到板子上,可以看到板子右边上面黄灯有规律的闪烁。
    24.JPG
    呵呵,至此一个完整例程下载进入板子,并完成了。下面我对例程中的一些函数,就我目前的理解,进行一定的注释。其中的不准确,还希望大家见谅!
    26.JPG
    可以看到,主函数中主要调用了sysclk_init()、board_init()、gpio_toggle_pin(LED0_GPIO)、delay_s(1)、delay_ms(100)、delay_us(100)。
    首先sysclk_init(),是对时钟初始化,主要是时钟配置,我们板子芯片使用的是12M晶振!
    board_init()是对MCU芯片上各个寄存器配置,如PIO、RTT、RTC等一系列控制器的配置等。这里不详细说,有些本人也没有了解清楚。
    delay_s(1)、delay_ms(100)、delay_us(100)三个是官方提供的三个延时函数,分别是秒延时、毫秒延时、微秒延时。
    下面重点介绍下gpio_toggle_pin(LED0_GPIO)函数,函数实体如下图所示

    图中的Pio是一个关于PIO的结构体,里面包含了PIO控制器的所有寄存器。PIA是PIOA控制器的基地址(我们MCU芯片上有三个PIO控制器,分别是PIOA、PIOB和PIOC,它们的空间都是0x2000),PIO_DELTA是PIOA的寄存器的长度。
    PIO_ODSR是输出数据状态寄存器,只能读取,用来读取PIO当前数据状态。
    PIO_CORD是清零输出寄存器,用来对输出置0。
    PIO_SORD是置位输出寄存器,用来对输出置1。
    LED0_GPIO是板子上LED1对应MCU上的索引号,LED1接到了PC10上。索引号是74,对应的二进制是0100 1010,由于PIO都是32位的,这样(ul_pin >> 5)就是取其高三位,对应的就是PIO控制器的地址,ul_pin & 0x1F低五位对应的就是PIO中某一个的地址了。对函数中处理结果,就是到真好对应就是PC10的地址,所以这样就不难理这个语句了p_pio->IO_CODR = 1 << (ul_pin & 0x1F),这就是通过左移10位对PC10进行清零处理,同理p_pio->IO_SODR = 1 << (ul_pin & 0x1F) 通过左移10位对PC10进行置位处理。下图是从Atmel官网上提供的《SAM4S Series Complete》关于上述几个寄存器的信息,希望对理解此段程序有用。
    27.JPG
    28.JPG
    29.JPG
    这部分由于本人能力有限,有说的不对的地方,希望各位纠正,也可以让我进步快点!呵呵,就写到这里!
    我还上传了pdf文档!









    21.JPG
    25.JPG

    驱动安装,软件使用及led_delay程序说明、编译、调试、下载.pdf

    1.57 MB, 下载次数: 36

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2015-12-14 11:43
  • 签到天数: 556 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-1-16 12:26:19 | 显示全部楼层
    沙发                    
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-7-20 20:36:45 | 显示全部楼层
    写的很好呀,学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 00:21
  • 签到天数: 4094 天

    连续签到: 5 天

    [LV.Master]伴坛终老

     楼主| 发表于 2013-8-28 23:47:43 | 显示全部楼层
    {:soso_e100:}谢谢 支持
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 06:49 , Processed in 0.152294 second(s), 23 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.