2-STM32变量定义

部署运行你感兴趣的模型镜像

参考文章

适用于嵌入式系统的变量

以下定义来自stm32f10x.h

typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;

typedef const int32_t sc32; /*!< Read Only /
typedef const int16_t sc16; /
!< Read Only /
typedef const int8_t sc8; /
!< Read Only */

typedef __IO int32_t vs32;
typedef __IO int16_t vs16;
typedef __IO int8_t vs8;

typedef __I int32_t vsc32; /*!< Read Only /
typedef __I int16_t vsc16; /
!< Read Only /
typedef __I int8_t vsc8; /
!< Read Only */

typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;

typedef const uint32_t uc32; /*!< Read Only /
typedef const uint16_t uc16; /
!< Read Only /
typedef const uint8_t uc8; /
!< Read Only */

typedef __IO uint32_t vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t vu8;

typedef __I uint32_t vuc32; /*!< Read Only /
typedef __I uint16_t vuc16; /
!< Read Only /
typedef __I uint8_t vuc8; /
!< Read Only */

CMSIS IO类型限定词
IO类限定词define描述
_Ivolatile const只读访问
_Ovolatile只写访问
_IOvolatile读写访问
数据类型对比
固件库CMSIS类型描述
s32int32_t有符号32位数据
sc32const int32_t只读有符号32位数据
vs32_IO int32_t易挥发读写访问有符号32位数据
vsc32_I int32_t易挥发只读有符号32位数据
u32uint32_t无符号32位数据
uc32const uint32_t只读无符号32位数据
vu32_IO uint32_t易挥发读写访问无符号32位数据
vuc32_I uint32_t易挥发只读无符号32位数据

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### 错误分析与解决方案 在使用 STM32MP1 和 OpenSTLinux 5.10 Dunfell 版本的 TF-A(Trusted Firmware-A)编译过程中,如果出现 `Makefile.sdk` 中 `recipe for target 'tf-trusted' failed` 的错误,通常是因为某些依赖项未正确配置或缺少必要的工具链支持。以下是详细的分析和解决方法: #### 1. 检查 `TF_A_ENABLE_DEBUG_WRAPPER` 变量配置 根据提供的信息[^1],`TF_A_ENABLE_DEBUG_WRAPPER` 是一个关键变量,用于控制是否生成调试用的包装器(wrapper)。如果该变量被设置为 `1`,但系统中缺少 `stm32wrapper4dbg` 工具,则会导致编译失败。 - 打开 `Makefile.sdk` 文件。 - 查找 `TF_A_ENABLE_DEBUG_WRAPPER` 定义: ```makefile TF_A_ENABLE_DEBUG_WRAPPER ?= 1 ``` - 将其更改为 `0` 以禁用调试包装器生成: ```makefile TF_A_ENABLE_DEBUG_WRAPPER ?= 0 ``` 此更改可以避免因缺少 `stm32wrapper4dbg` 工具而导致的错误。 #### 2. 验证工具链环境 确保开发环境中已正确安装并配置了所有必要的工具链和依赖项。以下是一些常见的检查点: - **工具链版本**:确认使用的 GCC 工具链版本与 OpenSTLinux 5.10 Dunfell 兼容。可以通过以下命令验证: ```bash arm-linux-gnueabihf-gcc --version ``` - **路径配置**:确保工具链路径已正确添加到系统的 `PATH` 环境变量中: ```bash export PATH=/path/to/toolchain/bin:$PATH ``` #### 3. 检查目标文件是否存在 错误信息可能表明某些目标文件(如 `tf-a-<dt>.stm32`)未正确生成或缺失。可以通过以下步骤验证: - 确认 `build` 目录下是否存在对应的 `.stm32` 文件: ```bash ls /home/linux/FSMP1A/tf-a-stm32mp-2.2.r2-r0/tf-a-stm32mp-2.2.r2/build/<config>/ ``` - 如果文件缺失,重新运行以下命令以生成所需的目标文件: ```bash make PLAT=stm32mp1 all fip ``` #### 4. 更新 Makefile 配置 如果问题仍未解决,可以尝试更新 `Makefile.sdk` 中的相关配置。例如: - 搜索 `tf-trusted` 目标定义,确保其依赖项正确无误。 - 检查是否有其他变量需要调整,例如 `BL31_BASE` 或 `FIP_BASE`。 #### 5. 清理并重新编译 有时,残留的中间文件可能导致编译失败。可以尝试清理整个项目目录并重新编译: ```bash make clean make PLAT=stm32mp1 all fip ``` --- ### 示例代码片段 以下是一个简化的 Makefile 示例,展示如何正确配置 `TF_A_ENABLE_DEBUG_WRAPPER`: ```makefile # 默认禁用调试包装器 TF_A_ENABLE_DEBUG_WRAPPER ?= 0 ifneq ($(TF_A_ENABLE_DEBUG_WRAPPER), 0) ifeq ($(shell which stm32wrapper4dbg),) $(error "stm32wrapper4dbg not found in PATH") endif endif all: @echo "Building TF-A with debug wrapper: $(TF_A_ENABLE_DEBUG_WRAPPER)" ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值