(一)RTOS kernel组件编译报错
- 使用STM32CubeMX软件生成带有RT-Thread RTOS kernel(实时操作系统内核)的工程
- 打开keil工程编译会发现如下报错:
- error: unknown type name ' SCB_VTOR '
- expected ' ; ' after top level declarator
……
所有报错均发生在汇编文件:" context_rvds.S "中;
- 这里其实是编译器对汇编文件识别有误,处理方法为:
- 右键文件" context_rvds.S ",选择第一个选项" Options for File 'context_rvds.S'...";
- 在"File Type"下拉框中选择"Assembly language file",即将文件类型从C文件更改为汇编文件,此时编译器会将该文件当作汇编文件处理;
- 重新编译即可
(二)RTOS shell组件编译报错
- 使用STM32CubeMX软件生成带有RT-Thread RTOS shell(实时操作shell指令)的工程
- 打开keil工程编译会发现如下报错:
#error Please uncomment the line <#include "finsh_config.h"> in the rtconfig.h
此处报错开发人员通过error宏,告知了处理方法,即请取消注释 rtconfig.h 中<#include“finsh_config.h”>行
- 打开文件<rtconfig.h>,找到行://#include "finsh_config.h",取消注释即可;
- 重新编译,可能会发生如下报错:
error: no member named ' DR ' in ' USART_TypeDef '
这里是USART_TypeDef 中没有 DR 成员名
- 查看成员列表,可以看到 DR 其实是被分为了 TDR (发送DR)和 RDR(接收DR),根据上下文, UART_FLAG_RXNE 推断此处应该为 RDR,修改即可;
- 重新编译