[其他] 华大MCU移植FreeRTOS

[复制链接]
 楼主| 狗啃模拟 发表于 2020-12-30 15:20 | 显示全部楼层
1,IAR设置FreeRTOS路径
944825fec2a3918031.png
 楼主| 狗啃模拟 发表于 2020-12-30 15:21 | 显示全部楼层
,2,IAR汇编设置路径
65875fec2a59def5f.png
 楼主| 狗啃模拟 发表于 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防止编译器报错
 楼主| 狗啃模拟 发表于 2020-12-30 15:22 | 显示全部楼层
 楼主| 狗啃模拟 发表于 2020-12-30 15:22 | 显示全部楼层
4,FreeRTOSConfig.h最后面加入

#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define xPortSysTickHandler SysTick_Handler
并且屏蔽SysTick_Handler
 楼主| 狗啃模拟 发表于 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 )
 楼主| 狗啃模拟 发表于 2020-12-30 15:23 | 显示全部楼层
6,HC32L136的SRAM大小为8KByte,可通过手册查看到
400405fec2afae9833.png
 楼主| 狗啃模拟 发表于 2020-12-30 15:24 | 显示全部楼层
IAR设置堆栈空间 Linker -> Config ->Edit
564565fec2b1e362ee.png
 楼主| 狗啃模拟 发表于 2020-12-30 15:25 | 显示全部楼层
这个芯片的堆栈加起来最大可以设为0x2000,8k字节
FreeRTOSConfig.h设置FreeRTOS空间大小,用了3K字节,FreeRTOS实际就是定义了一个3K字节的数组
 楼主| 狗啃模拟 发表于 2020-12-30 15:25 | 显示全部楼层
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 3 * 1024 ) )
 楼主| 狗啃模拟 发表于 2020-12-30 15:26 | 显示全部楼层
7,port.c屏蔽static void prvSetupTimerInterrupt( void )里面的内容
在初始化里面加入 SysTick_Config(configCPU_CLOCK_HZ/configTICK_RATE_HZ);
void prvSetupTimerInterrupt( void )其实就是实现Systick定时器中断,因为懒得调所以直接把它屏蔽了
5574293 发表于 2021-4-16 15:12 | 显示全部楼层
码住
yangxiaor520 发表于 2021-4-16 18:01 来自手机 | 显示全部楼层
看看,谢谢楼主的讲解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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