1.下载freeRTOS源码以及HC32L13x工程源码。解压到当前目录
2,新建文件夹命令为HC32L13x_freeRTOS

3.复制HC工程目录下的driver,mcu两个文件夹到HC32L13x_freeRTOS目录下

4.复制HC32L13x_DDL_Rev2.1.0\HC32L13x_DDL_Rev2.1.0\example\gpio\gpio_output目录下的MDK以及source文件夹到HC32L13x_freeRTOS文件夹

5.打开MDK目录,将项目名更改为HC32L13x_freeRTOS,并打开工程,调整到可编译成功。

重新指向目录及头文件目录,编译OK后,开始移植freeRTOS。

6.在HC32L13x_freeRTOS目录下新建文件夹freeRTOS文件夹,用来存放freeRTOS源码,
打开先前下载解码的freeRTOS源码包,进入\FreeRTOSv202212.01\FreeRTOS\Source全部复制到自己工程目录下的HC32L13x_freeRTOS\freeRTOS文件夹下。

7.打开HC32L13x_freeRTOS\freeRTOS\portable目录,将MemMang和RVDS以外的全部删除,

8.打开RVDS目录,将ARM_CM0以外的目录全部删除,只保留ARM_CM0。

9.接下来开始将源码添加到工程。在Groups下新建freeRTOS项,添加将才的freeRTOS源码添加到freeRTOS下。


添加heap_4.c

添加port.c
10.在freeRTOS源码工程demo下随便找个CORTEX_M0的工程,将FreeRTOSConfig.h文件复制到自己工程freeRTOS目录下。、

11,添加头文件引用

12,将ARM Compiler设置为版本5,并编译工程。

13.编译报错提示.\output\release\gpio_output.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by port.o and interrupts_hc32l13x.o).

此时我们将interrupts_hc32l13x.c下的void_sysTick_Handler函数屏蔽。再次编译。

编译提示内存不足

我们修改FreeRTOSConfig.h
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 5*1024 ) )再次编译,

再次报错,提示3个钩子函数没有定义,我们先将宏关闭,

再次编译,没有问题了。
14.接下来创建任务测试

以下是我的FreeRTOSConfig.h配置,main.c里面补充了几个钩子函数:
/*
* FreeRTOS V202212.01
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restricti

3722

被折叠的 条评论
为什么被折叠?



