查看: 209|回复: 1

[SAM4L] Blink走起

[复制链接]

129

主题

4

好友

4791

积分

状元

Rank: 6Rank: 6

  • TA的每日心情
    开心
    昨天 20:50
  • 签到天数: 527 天

    [LV.9]以坛为家II

    发表于 2016-4-2 16:25:28 |显示全部楼层
    接上一篇帖子http://www.eeboard.com/bbs/thread-46793-1-1.html
    之前编译出现错误“No section matches selector-no section to be FIRST/LAST”网上有网友这样解决:
    Options for Target ' xxxx ',里面的Linker选项下面:
    1、去掉勾选 Use Memory Layout from Target Dialog
    2、清空 Acatter File里面的内容
    点确定,okay了我再把自己的上一篇帖子中编译错误看了一遍,发现原来我使用的是MAPS的路径,怪不得rebuild报错,哈哈,那些小问题总是让我们可笑。原本能早日为大家贡献这份帖子。
    SAM4L板子供电后两个micro-USB口旁边的黄绿LED亮起,如下
    20160227_225221.jpg

    下来使用MDK开发该开发板,完成闪灯实验,让power灯闪烁不可能,那就让绿灯闪烁。SAM4L.DFP及EDBG驱动安装上一篇帖子已提到,不再赘述。
    步骤:
    1、打开SAM4_DFP\1.4.0\Boards\Atmel\SAM4L-XPRO\Blinky工程编译,该文件在C:\Keil_v5\ARM\Pack\Keil\,以你的keil安装路径为准。打开如下,
    1.JPG

    2、设置下载方式,用MDK开发SAM系列板子的帖子不多,看了下
    基于SAM4S XPLAINED开发板KEIL-MDK开发环境搭建及LED测试 - 爱板网经验频道 - Eeboard爱板网 http://jingyan.eeboard.com/article/73916
    里面使用jlink下载,我也照样选择了jlink,结果看到JTAG version中出现error,还是换回开始的CMSIS DAP吧,如下设置
    2.JPG

    3、"output"中设置输出方式,可以设置生成链接库,后面再次编译会缩短时间。当然,这个链接库也可以不用制作,当你用的那个库文件的时候,直接加载即可,只不过编译费些时间。ST现在就是这种开发方式。
    再次编译
    3.JPG

    4、没有错误那就是“download”,因为之前使用AS开发过SAM D21开发板,后面把AS卸了,好久没有摸SAM系列板子,下载时犹豫应该生成什么文件,是hex、bin还是其他。直接下载就是。哈哈,那些小问题总是让我们可笑。

    程序中LED 500ms间隔闪烁,你可以随意设定
    blink4.JPG

    效果见视频

    回复

    使用道具 举报

    129

    主题

    4

    好友

    4791

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    开心
    昨天 20:50
  • 签到天数: 527 天

    [LV.9]以坛为家II

    发表于 2016-4-2 16:27:21 |显示全部楼层
    1. Rebuild target 'SAM4L Flash'
    2. compiling Blinky.c...
    3. compiling Buttons_SAM4L-XPRO.c...
    4. compiling LED_SAM4L-XPRO.c...
    5. compiling RTX_Conf_CM.c...
    6. assembling startup_sam4l.s...
    7. compiling system_sam4l.c...
    8. linking...
    9. Program Size: Code=5312 RO-data=508 RW-data=76 ZI-data=2836  
    10. FromELF: creating hex file...
    11. ".\Flash\Blinky.axf" - 0 Error(s), 0 Warning(s).
    12. Build Time Elapsed:  00:01:37
    13. Load "C:\\Keil_v5\\ARM\\Pack\\Keil\\SAM4_DFP\\1.4.0\\Boards\\Atmel\\SAM4L-XPRO\\Blinky\\Flash\\Blinky.axf"
    14. Include "C:\\Keil_v5\\ARM\\Pack\\Keil\\SAM4_DFP\\1.4.0\\Boards\\Atmel\\SAM4L-XPRO\\Blinky\\Set_CoreClock.ini"
    15. /*----------------------------------------------------------------------------
    16. * Name:    Set_CoreClock.ini
    17. * Purpose: CoreClock Initialization File (used for Flash programming)
    18. * Note(s):
    19. *----------------------------------------------------------------------------
    20. * This file is part of the uVision/ARM development tools.
    21. * This software may only be used under the terms of a valid, current,
    22. * end user licence from KEIL for a compatible version of KEIL software
    23. * development tools. Nothing else gives you the right to use this software.
    24. *
    25. * This software is supplied "AS IS" without warranties of any kind.
    26. *
    27. * Copyright (c) 2013 Keil - An ARM Company. All rights reserved.
    28. *----------------------------------------------------------------------------*/
    29. /*----------------------------------------------------------------------------
    30.   Configure CoreClock to 40MHz
    31. *----------------------------------------------------------------------------*/
    32.   // enable 80 MHz RC Oscillator
    33. //  SCIF->UNLOCK = SCIF_UNLOCK_KEY | ((u32)&SCIF->RC80MCR - (u32)SCIF_BASE);
    34. _WDWORD(0x400E0818, 0xAA000050);
    35. //  SCIF->RC80MCR = SCIF_RC80MCR_EN;
    36. _WDWORD(0x400E0850, 0x00000001);
    37. //  while((SCIF->RC80MCR & SCIF_RC80MCR_EN) != SCIF_RC80MCR_EN);
    38.   _sleep_(1);
    39. //  PM->UNLOCK = PM_UNLOCK_KEY | ((u32)&PM->CPUSEL - (u32)PM_BASE);
    40. _WDWORD(0x400E0058, 0xAA000004);
    41. //  PM->CPUSEL = PM_CPUSEL_CPUDIV;     // 80 MHz / 2
    42. _WDWORD(0x400E0004, 0x00000080);
    43. //  while((PM->SR & PM_SR_CKRDY) != PM_SR_CKRDY);
    44.   _sleep_(1);
    45. //  PM->UNLOCK = PM_UNLOCK_KEY | ((u32)&PM->MCCTRL - (u32)PM_BASE);
    46. _WDWORD(0x400E0058, 0xAA000000);
    47. //  PM->MCCTRL = PM_MCCTRL_MCSEL_RC80M;
    48. _WDWORD(0x400E0000, 0x00000004);
    49. //  while((PM->SR & PM_SR_CKRDY) != PM_SR_CKRDY);
    50.   _sleep_(1);
    51. Erase Done.
    52. Programming Done.
    53. Verify OK.
    54. Application running ...
    55. Flash Load finished at 15:58:04
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-8 10:00 , Processed in 0.154927 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部