查看: 2668|回复: 7

[原创] 逐飞LPC55S69 IOT开发板开箱

[复制链接]
  • TA的每日心情
    奋斗
    前天 13:25
  • 签到天数: 594 天

    [LV.9]以坛为家II

    51

    主题

    2222

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7060
    最后登录
    2024-4-27
    发表于 2020-11-16 19:37:47 | 显示全部楼层 |阅读模式
    本帖最后由 andeyqi 于 2020-11-17 13:12 编辑

    一直想搞块双核的mcu玩玩,趁着社区的双十一活动优惠活动购买了块逐飞LPC55S69开发板玩玩,在此感谢管管(日天兄)安排的活动购买的价格还是比较给力的而且已经收到管管购买开发板反的京东券,价格真的很香,以下开始今天的开箱跑起来开发板,虽然主板的大小相对比较迷你不过做工还是比较精致的,板载了一路全速USB口,一路高速的USB口,调试口使用的SWD方式,六路flexcomm接口用于扩展UART,IIC,SPI接口的外设/传感器。

    微信图片_20201116182708.jpg

    本次开箱使用的例程采用逐飞基于NXP SDK二次开发的接口库,逐飞的里程已经开源托管在gitee上,可以从如下链接下载获取,接口库的使用说明在如下链接也有详细的描述。
    https://gitee.com/seekfree/LPC55S69_Library

    开发/调试环境:使用MDK(5.29版本),JLINK-V9,因LPCS5569 相对比较新,建议使用高版本的MDK和JLINK驱动,避免因开发环境不支持造成的异常状况,开发环境要求可以参考如下内容,仅供参考。
    微信截图_20201116191630.png



    微信截图_20201116191710.png





    逐飞的开源库中已经集成了大部分外设的驱动例程,可以让新手快速的上手使用该芯片,更新最新的rt-thread仓库发现已经支持了LPC55S69单核系统的移植,不负所望的逐飞的历程下也包含了rt-thread的例程,本次开箱就基于此将rt-thread 系统跑起来,rt-thread 系统我一直认为是国产里面比较好的代码也很优雅一致在默默的关注其快速发展。
    废话不多说了,打开逐飞的RTT历程,先简单的分析下程序。
    1. #include "rtt_demo.h"

    2. /*******************************************************************************
    3. * Variables
    4. ******************************************************************************/
    5. volatile uint16_t runtime = 0;
    6. /*******************************************************************************
    7. * Code
    8. ******************************************************************************/

    9. void iot_print_runtime (void *parameter)
    10. {
    11.         while(1)
    12.         {
    13.                 delay_ms(1000);
    14.                 runtime++;
    15.                 rt_kprintf("\r\n%d.", runtime);
    16.         }
    17. }

    18. void clear_runtime (int argc)
    19. {
    20.         runtime = 0;
    21. }
    22. MSH_CMD_EXPORT(clear_runtime, clear runtime with no param);                                                                                                                                // ÉèÖà MSH ÃüÁî Çå¿ÕÔËÐÐʱ¼ä

    23. void set_runtime (int argc, char** argv)
    24. {
    25.         runtime = ((uint8_t)argv[1][0]-0x30);
    26.         if(argv[1][1] > 0x2F && argv[1][1] < 0x3A)
    27.         {
    28.                 runtime = runtime*10 + ((uint8_t)argv[1][1]-0x30);
    29.                 if(argv[1][2] > 0x2F && argv[1][2] < 0x3A)
    30.                         runtime = runtime*10 + ((uint8_t)argv[1][2]-0x30);
    31.         }
    32.         if(runtime > 10000)        runtime = 10000;
    33. }
    34. MSH_CMD_EXPORT(set_runtime, set runtime with decimalism param);                                                                                                                        // ÉèÖà MSH ÃüÁî ÉèÖÃÔËÐÐʱ¼ä

    35. /*!
    36. * @brief Main function
    37. */
    38. int main(void)
    39. {
    40.         rt_thread_t tid;

    41.         tid = rt_thread_create("runtime_print", iot_print_runtime, RT_NULL, 1024, 12, 28);                                                                        // н¨Ïß³Ì
    42.         RT_ASSERT(tid != RT_NULL);
    43.         rt_thread_startup(tid);

    44.         while(1)
    45.         {
    46.                 delay_ms(50);
    47.         }
    48.     return 0;
    49. }
    复制代码

    从以上的代码分析,历程实现的功能还是比较简单的,创建了runtime_print 任务线程打印输出系统但当前运行的时间,并是实现了设定/清除时间的命令来设置和清除当前运行的时间,看完这段代码还会有一个疑问板子上有六路flexcomm串口,但是系统终端绑定的是哪个呢,我们从如下配置代码中可以找到答案,从配置可以看出来对应的uart7,好了我们可以编译运行下代码验证下上述分析和代码运行的效果是否一致。
    1. /* Kernel Device Object */

    2. #define RT_USING_DEVICE
    3. #define RT_USING_CONSOLE
    4. #define RT_CONSOLEBUF_SIZE 128
    5. #define RT_CONSOLE_DEVICE_NAME "uart7"
    6. #define RT_VER_NUM 0x40002
    7. #define ARCH_ARM_CORTEX_FPU
    复制代码

    根据原理图可知uart7接口在P15接口中,对应具体引脚如下.
    微信截图_20201116185956.png


    通过串口输出信息及输入clear_runtime/set_runtime 运行效果和之前分析的保持一致。


    微信截图_20201116190540.png


    说到双核系统我们简单的描述下LPCS5569的双核启动过程,LPC55S69芯片的双核启动方式为CORE0开始工作后从CORE0启动CORE1,CORE0为master 核,CORE1为slave 核,片上的资源可以根据各自的需求进行分配配置,在此简单的看一下逐飞的demo程序中对存储资源的分配情况,因为demo程序使用的是单核,我们看下链接脚本中对memory资源的使用分配情况。

    1. /* USB BDT size */
    2. #define usb_bdt_size                   0x0
    3. /* Sizes */
    4. #if (defined(__stack_size__))
    5.   #define Stack_Size                   __stack_size__
    6. #else
    7.   #define Stack_Size                   0x400
    8. #endif

    9. #if (defined(__heap_size__))
    10.   #define Heap_Size                    __heap_size__
    11. #else
    12.   #define Heap_Size                    0x400
    13. #endif

    14. #define  m_interrupts_start            0x00000000
    15. #define  m_interrupts_size             0x00000200

    16. #define  m_text_start                  0x00000200
    17. #define  m_text_size                   0x00071E00

    18. #define  m_core1_image_start           0x00072000
    19. #define  m_core1_image_size            0x00026000

    20. #if (defined(__use_shmem__))
    21.   #define  m_data_start                0x20000000
    22.   #define  m_data_size                 0x00031800
    23.   #define  m_rpmsg_sh_mem_start        0x20031800
    24.   #define  m_rpmsg_sh_mem_size         0x00001800
    25. #else
    26.   #define  m_data_start                0x20000000
    27.   #define  m_data_size                 0x00033000
    28. #endif

    29. #define  m_usb_sram_start              0x40100000
    30. #define  m_usb_sram_size               0x00004000
    复制代码

    从如下信息可以看出0x00000200 ~ 0x00072000这部分空间是CORE0的代码段,0x00072000~0x00098000区间配置为CORE1的代码段
    1. #define m_text_start 0x00000200
    2. #define m_text_size 0x00071E00

    3. #define m_core1_image_start 0x00072000
    4. #define m_core1_image_size 0x00026000
    复制代码
    从如下信息可以看出,两个和之间是预留了一部分共有内存用来双核间通信,SDK的接口库中已经封装可这一部分的操作处理后续进行研究。
    1. #if (defined(__use_shmem__))
    2. #define m_data_start 0x20000000
    3. #define m_data_size 0x00031800
    4. #define m_rpmsg_sh_mem_start 0x20031800
    5. #define m_rpmsg_sh_mem_size 0x00001800
    6. #else
    7. #define m_data_start 0x20000000
    8. #define m_data_size 0x00033000
    9. #endif
    复制代码

    如下是数据手册中对地址区间的划分,从中可以发现ram/rom的地址和上述的链接文件是的划分区间是匹配的。

    微信截图_20201116193459.png


    本次开箱运行RTT就到此,后续计划研究下双核间的共享内存通信机制,在两个核上同时跑起来RTT,两个系统之间通过共有内存来通信,本贴中的某些描述如有错误,欢迎斧正。


    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 09:53
  • 签到天数: 1479 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92703
    最后登录
    2024-4-26
    发表于 2020-11-16 22:27:35 | 显示全部楼层
    不错,支持一下~~~
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2020-11-17 09:13:37 | 显示全部楼层
    双核心处理器性能上面还是超级赞的。
    在软件架构上面,也确实要花更多的心思。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-4 13:30
  • 签到天数: 47 天

    [LV.5]常住居民I

    3

    主题

    167

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    379
    最后登录
    2024-4-16
    发表于 2020-11-17 10:53:25 | 显示全部楼层
    不错,期待一下后续项目
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 13:25
  • 签到天数: 594 天

    [LV.9]以坛为家II

    51

    主题

    2222

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7060
    最后登录
    2024-4-27
     楼主| 发表于 2020-11-17 21:46:59 | 显示全部楼层
    stm1024 发表于 2020-11-16 22:27
    不错,支持一下~~~

    感谢捧场
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 13:25
  • 签到天数: 594 天

    [LV.9]以坛为家II

    51

    主题

    2222

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7060
    最后登录
    2024-4-27
     楼主| 发表于 2020-11-17 21:47:43 | 显示全部楼层
    jobszheng5 发表于 2020-11-17 09:13
    双核心处理器性能上面还是超级赞的。
    在软件架构上面,也确实要花更多的心思。 ...

    嗯嗯,是的,从双核的SDK包含的内容可以看出来还是花了心思的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 13:25
  • 签到天数: 594 天

    [LV.9]以坛为家II

    51

    主题

    2222

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7060
    最后登录
    2024-4-27
     楼主| 发表于 2020-11-17 21:48:03 | 显示全部楼层
    leo01 发表于 2020-11-17 10:53
    不错,期待一下后续项目

    第二弹已经更新
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    2024-4-25
    发表于 2022-5-1 22:36:19 | 显示全部楼层
    请教一下,这个片子的FLM文件用的特定的吗?有的话方便发一下
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 12:59 , Processed in 0.138827 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表