查看: 984|回复: 0

【LPC824Lite试用】1.奔跑吧uCOS

[复制链接]
  • TA的每日心情
    开心
    2018-6-21 08:39
  • 签到天数: 8 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    发表于 2017-11-13 12:51:07 | 显示全部楼层 |阅读模式
    分享到:
    很幸运LPC824Lite开发板的试用申请审核通过了,打算在上面跑跑uCOS-III,同时体验一下LPC824特有的片内ROM驱动,在学习的同时把经历和大家分享一下。
    可依想得很周到,周五发的快递,周末包裹在路途飞奔,正好周一早晨就收到了。包装很简洁,一个扑克牌大小的纸盒+一个防静电袋。板卡兼容Arduino R3扩展接口,更多的细节我就不介绍了,可以移步评测文章
    https://www.eeboard.com/evaluation/nxp-lpc824lite/

    直入主题,首先下载官方的资料,包含板卡手册、原理图等文档以及SDK。SDK中有最基本的启动配置、驱动和很多demo代码,移植时会用到
    https://www.ucdragon.cn/prod_view.aspx?TypeId=148&Id=250

    然后到Micrium官网下载一个CortexM0+的BSP包,没找到NXP的,就下了一个FRDM-KL25Z的
    https://www.micrium.com/download/micrium_frdm-kl25z/
    这样uC/OS中和arch相关的代码就不用动了,剩下的就是修改BSP了。由于跑基础BSP只需要中断、时钟和串口,再加个点灯;而中断NVIC和时钟SysTick都是标准的,所以移植只需要做以下的改动:

    • 把SDK中的common和driver挪到BSP目录下

    • 对照着Reference Manual改中断向量相关的文件,主要是cstartup.s,bsp_int.c和bsp.h

    • 对照着SDK改启动相关的代码、clock、LED 相关IO管脚的配置,以及用作debug串口的USART1的驱动和IO管脚配置

    • 为了能够看到运行效果,先创建一个任务,循环点灯

    最后创建一个MDK的工程,把需要编译的文件和头文件路径都配好,就可以编译了。Project的结构编排如下

    编译中会遇到提示内存不足的问题,因为KL25Z的SRAM是16K,而LPC824的RAM只有8K;如果把原来BSP下的所有特性都使能,内存是不够用的,所以需要对uCOS-III进行裁剪。我主要做了以下的修改

    • 关闭一些不使用的模块,比如OS_CFG_PEND_MULTI_EN、OS_CFG_MEM_EN等等

    • 减少系统支持的最大任务优先级,比如OS_CFG_PRIO_MAX改为16

    • 减小一些系统任务的堆栈,比如idle任务和tick任务
    做了这些裁剪后占用SRAM大小降到了5K多,也就是说留给用户的内存就剩不到3K了。

    虽然还可以往下继续裁剪,但是相应的功能也就用不了了。看来要想充分地使用uCOS-III的功能,8K的内存还是显得小了一些。
    最后将Debugger设置为CMSIS-DAP Debugger,通过MDK download按钮就可以下载到flash中运行了


    期间遇到一个小插曲,就是下载过SDK中的demo后,再用MDK download就会报“invalid rom table”了。我开始以为板子坏了,结果到网上一搜,还真有人遇到过同样的问题,而且给出了解决办法;回头细看评测文章,发现在最后也提到了这个问题,又一次感慨——网上高手真多啊!
    https://www.nxpic.org/module/forum/forum.php?mod=viewthread&tid=607045
    附件中有打包的工程
    LPC824Lite-uCOS-III-1.zip
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 16:13 , Processed in 0.114259 second(s), 17 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.