$PROJ_DIR$\freeRTOS\include $PROJ_DIR$\freeRTOS\portable\IAR\ARM_CM4F $PROJ_DIR$\Common\include示当前工程目录,利用这个变量就可以设置和工程相关的路径了,不要设置为绝对路径,否则如果工程拷贝到其他路径,就无法正确编译了。 Copy 并设置两个宏: USE_STDPERIPH_DRIVER STM32F4XX Copy 5.3 设置汇编器包含...
Keil 文件夹里面的东西肯定也是必须的,但是我们打开Keil文件夹以后里面只有一个文件:See-also-the-RVDS-directory.txt,意思就是参考RVDS文件夹里面的东西! RVDS 文件夹针对不同的架构的 MCU 做了详细的分类,STM32F429 就参考 ARM_CM4F,打开 ARM_CM4F 文件夹,里面有两个文件,这两个文件就是我们移植的时候所需...
heap_4.c 文件路径:\FreeRTOS\Source\portable\MemMang port.c 和 portmacro.h 文件的路径:\FreeRTOS\Source\portable\RVDS\ARM_CM4F 这两个是M4硬件相关接口代码 编译报错\FreeRTOS\portable\RVDS\ARM_CM4F\port.c(732): error: #20: identifier "SystemCoreClock" is undefined 填加MDK的编译器编译器预定义...
4 在工程中添加新的头文件搜索路径:.\FreeRTOS\include;.\FreeRTOS\portable\RVDS\ARM_CM4F 5 打开FreeRTOSConfig.h配置文件,根据自己硬件配置进行修改1. 首先将文件开头的__ICCARM__修改为__CC_ARM,即把编译器从IAR改为RealView2. 将以下宏配置为0configUSE_IDLE_HOOKconfigUSE_TICK_HOOKconfigCHECK_FOR_...
// FreeRTOS\Source\portable\IAR\ARM_CM4F\portasm.s vPortStartFirstTask /* Use the NVIC offset register to locate the stack. */ ldr r0, =0xE000ED08 ldr r0, [r0]// 获取向量表起始地址 ldr r0, [r0]// 获取向量表 /* Set the msp back to the start of the stack. */ ...
注:全保留也可以,就是其他的用不到,会使工程文件夹变的很大,如果用版本控制软件管理,会增加仓库的大小。ARM_CM4F_MPU文件夹暂时没用,这个留做备用。 4.7 在IAR工程中新建portable文件夹,并加入相应的文件 4.8 将下面几个文件从官方例子中拷贝过来,并加入工程 ...
注:全保留也可以,就是其他的用不到,会使工程文件夹变的很大,如果用版本控制软件管理,会增加仓库的大小。ARM_CM4F_MPU文件夹暂时没用,这个留做备用。 4.7 在IAR工程中新建portable文件夹,并加入相应的文件 4.8 将下面几个文件从官方例子中拷贝过来,并加入工程 ...
portable/GCC/ARM_CM4F/port.c:针对ARM CortexM4F处理器的移植层代码。 portable/GCC/ARM_CM7/r0p1/port.c:针对ARM CortexM7处理器的移植层代码。 portable/GCC/RISCV/port.c:针对RISCV架构的移植层代码。 portable/MemMang/heap_4.c:通用的堆内存管理实现。
\FreeRTOSv9.0.0\FreeRTOS\Source\portable\RVDS\ARM_CM4F目录,是针对Cortex-M4 FPU功能的。 \FreeRTOSv9.0.0\FreeRTOS\Source\portable\RVDS\ARM_CM4_MPU目录,是针对Cortex-M4 MPU功能的。 工程,添加文件 添加头文件路径,由于都整合到一起,包含一个include即可 ...
// FreeRTOS\Source\portable\RVDS\ARM_CM4_MPU\port.c void vPortEnterCritical( void ) { BaseType_t xRunningPrivileged = xPortRaisePrivilege(); portDISABLE_INTERRUPTS(); //关闭中断 uxCriticalNesting++; // 全局变量,临界段嵌套次数 vPortResetPrivilege( xRunningPrivileged ); ...