发新帖我要提问
12
返回列表
打印
[其他]

华大MCU移植FreeRTOS

[复制链接]
楼主: 狗啃模拟
手机看帖
扫描二维码
随时随地手机跟帖
21
狗啃模拟|  楼主 | 2020-12-30 15:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
1,IAR设置FreeRTOS路径

使用特权

评论回复
22
狗啃模拟|  楼主 | 2020-12-30 15:21 | 只看该作者
,2,IAR汇编设置路径

使用特权

评论回复
23
狗啃模拟|  楼主 | 2020-12-30 15:21 | 只看该作者
3,C/C++ Compiler -> Diagnostics 加入

Pm117,Pm119,Pm154,Pm113,Pm058,Pm003,Pm121,Pm008,Pm049,Pm139,Pm142,Pm081,Pm043,Pm069,Pm127,Pe167,Pm071防止编译器报错

使用特权

评论回复
24
狗啃模拟|  楼主 | 2020-12-30 15:22 | 只看该作者

使用特权

评论回复
25
狗啃模拟|  楼主 | 2020-12-30 15:22 | 只看该作者
4,FreeRTOSConfig.h最后面加入

#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler
并且屏蔽SysTick_Handler

使用特权

评论回复
26
狗啃模拟|  楼主 | 2020-12-30 15:23 | 只看该作者
5,FreeRTOSConfig.h设置滴答定时器的中断时间,时钟频率为32M,systick定时器1ms中断一次
#define configCPU_CLOCK_HZ ( ( unsigned long ) SystemCoreClock )
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )

使用特权

评论回复
27
狗啃模拟|  楼主 | 2020-12-30 15:23 | 只看该作者
6,HC32L136的SRAM大小为8KByte,可通过手册查看到

使用特权

评论回复
28
狗啃模拟|  楼主 | 2020-12-30 15:24 | 只看该作者
IAR设置堆栈空间 Linker -> Config ->Edit

使用特权

评论回复
29
狗啃模拟|  楼主 | 2020-12-30 15:25 | 只看该作者
这个芯片的堆栈加起来最大可以设为0x2000,8k字节
FreeRTOSConfig.h设置FreeRTOS空间大小,用了3K字节,FreeRTOS实际就是定义了一个3K字节的数组

使用特权

评论回复
30
狗啃模拟|  楼主 | 2020-12-30 15:25 | 只看该作者
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 3 * 1024 ) )

使用特权

评论回复
31
狗啃模拟|  楼主 | 2020-12-30 15:26 | 只看该作者
7,port.c屏蔽static void prvSetupTimerInterrupt( void )里面的内容
在初始化里面加入 SysTick_Config(configCPU_CLOCK_HZ/configTICK_RATE_HZ);
void prvSetupTimerInterrupt( void )其实就是实现Systick定时器中断,因为懒得调所以直接把它屏蔽了

使用特权

评论回复
32
5574293| | 2021-4-16 15:12 | 只看该作者
码住

使用特权

评论回复
33
yangxiaor520| | 2021-4-16 18:01 | 只看该作者
看看,谢谢楼主的讲解。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则