完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 guo8113 于 2016-7-23 17:44 编辑 拿到开发板运行了几个感兴趣的示例工程,同时也发现了几个问题,在这里进行讨论。此帖会持续更新 1. Freertos的demo,首先感觉这个rtos的demo和BM的demo貌似不是一个人做的。哈哈,这不是重点。 (1) 在FreeRTOS demo中有一点大家要注意,demo中的 FreeRTOSConfig.h里将系统时钟写为了固定的72MHZ: #define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 ) 所以假如,你系统时钟不再是72MHZ,这里需要修改。 更好的方法应该是在FreeRTOS port.c里声明外部变量:extern uint32_t SystemCoreClock; 而变量SystemCoreClock是在CMSIS头文件system_mm32x103.c里定义并根据时钟配置更新的。然后就可以把 FreeRTOSConfig.h里时钟定义改为#define configCPU_CLOCK_HZ SystemCoreClock (2) 在移植FreeRTOS时,灵动将startup.s里的中断入口改了,也就是说与其他的程序用的不是同一个startup_MM32x103_md.s文件.如下图,左边为FREERTOS的startup文件,右边为device下的startup文件 我觉得,还是在FreeRTOSConfig.h里定义一下映射关系比较直观一点: /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */ #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSysTickHandler SysTick_Handler 这样就需要修改startup.s文件了。 (3) 用FreeRTOS遇到了一个问题,demo中的delay函数是用systick实现的,那我用RTOS时 systick是系统时钟滴答调度用,这时很多驱动在RTOS里就用不了了吧? 这点灵动做的还可以,看了下ucos的代码,实现了UCOS上的delay us与ms函数。于是模仿之,写了下FreeRTOS的: 最后把DK21_touchpanel用FreeRTOS实现了一把:一个线程运行原来的touchpanel,一个线程呼吸灯。 代码见附件(附件中2个线程都操作LED了,所以呼吸灯闪起来没规律)。解压之后把smart prj目录与DK103R_lib平行放置。更改下core_m3.h的路径,指向自己的KEIL安装路径即可:
|
|
相关推荐
7 个讨论
|
|
为什么没有下载权限?
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2249个成员聚集在这个小组
加入小组灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表
11703 浏览 3 评论
【MM32 eMiniBoard试用连载】+基于OLED12864的GUI---U8G2
5930 浏览 1 评论
【MM32 eMiniBoard试用连载】移植RT-Thread至MM32L373PS
10965 浏览 0 评论
【MM32 eMiniBoard测评报告】+ 开箱 + 初探
4577 浏览 1 评论
灵动微课堂(第106讲) | MM32 USB功能学习笔记 —— WinUSB设备
4302 浏览 1 评论
[MM32软件] MM32F002使用内部flash存储数据怎么操作?
978浏览 1评论
805浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 19:00 , Processed in 0.858332 second(s), Total 85, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号