当前位置: 首页 > news >正文

深入解析:N32G43x Flash 驱动移植与封装实践

深入解析:N32G43x Flash 驱动移植与封装实践

在嵌入式 Bootloader 和固件升级中,Flash 的读写擦操作是必不可少的底层能力。本文基于 N32G43x MCU,实现了一个跨平台的 Flash 驱动封装,并总结了移植过程中的关键点和注意事项。

一、设计目标

移植的 Flash 驱动主要目标如下:

  1. 跨平台封装
    通过统一的 API (remo_flash_xxx),让上层应用代码不需要关心底层硬件差异。

  2. 提供常见的 Flash 操作

    • 读操作:读取 Flash 存储数据。

    • 写操作:写入半字(2 字节)和字(4 字节)。

    • 擦除操作:包括擦除单个扇区和整个 Flash 芯片。

  3. 增强的可靠性

    • 地址合法性检查,确保 Flash 操作在有效范围内。

    • 考虑到中断和非对齐写入等问题,确保操作的正确性和稳定性。

二、接口设计

对上层的统一接口,Flash 驱动提供了统一的 API,包含了读取、写入、擦除等常见操作:

// 读数据
AW_S32 remo_flash_read_bytes(AW_U32 address, AW_U32 length, AW_U8 *buf);
// 半字写入(2 Byte 对齐)
AW_S32 remo_flash_write_halfwords(AW_U32 address, AW_U32 length, AW_U16 *buf);
// 字写入(4 Byte 对齐)
AW_S32 remo_flash_write_words(AW_U32 address, AW_U32 length, AW_U32 *buf);
// 擦除扇区
AW_S32 remo_flash_erase_sector(AW_U32 sector);
// 地址 -> 扇区映射
AW_U32 remo_flash_get_sector(AW_U32 address, AW_U32* left_size);
// 整片擦除
AW_S32 remo_flash_erase_chip();

这些接口对上层应用提供了一致的使用方式,而底层具体的实现由 remo_flash_plat.c 完成。

底层平台相关接口

AW_S32 remo_flash_read_bytes_plat(AW_
http://www.hskmm.com/?act=detail&tid=9854

相关文章:

  • Backblaze上如何传大文件
  • 解题报告-老逗找基友 (friends)
  • Caused by: java.lang.ClassNotFoundException: org.apache.rocketmq.remoting.common.RemotingUtil
  • VAE In JAX【个人记录向】
  • BLE蓝牙配网双模式实操:STA+SoftAP技术原理与避坑指南
  • 第58天:RCE代码amp;命令执行amp;过滤绕过amp;异或无字符amp;无回显方案amp;黑白盒挖掘
  • 057-Web攻防-SSRFDemo源码Gopher项目等
  • 060-WEB攻防-PHP反序列化POP链构造魔术方法流程漏洞触发条件属性修改
  • 059-Web攻防-XXE安全DTD实体复现源码等
  • 061-WEB攻防-PHP反序列化原生类TIPSCVE绕过漏洞属性类型特征
  • 051-Web攻防-文件安全目录安全测试源码等
  • Dilworth定理及其在算法题中的应用
  • 050-WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒
  • error: xxxxx does not have a commit checked out
  • 049-WEB攻防-文件上传存储安全OSS对象分站解析安全解码还原目录执行
  • 云原生周刊:MetalBear 融资、Chaos Mesh 漏洞、Dapr 1.16 与 AI 平台新趋势
  • AI一周资讯 250913-250919
  • 045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件-cnblog
  • linux 命令语句
  • 用 Kotlin 实现英文数字验证码识别
  • 达芬奇(DaVinci Reslove)字体文件 bugb标签
  • 语音芯片怎样挑选?语音芯片关键选型要点?
  • KingbaseES Schema权限及空间限额
  • HTTP库开发实战:核心库与httpplus扩展库示例解析
  • QMT交易系统向服务器同步订单丢失问题排查
  • 笔记1
  • 用 Python 和 Tesseract 实现英文数字验证码识别
  • 实用指南:OSPF特殊区域、路由汇总及其他特性
  • 禅道以及bug
  • 中电金信 :MCP在智能体应用中的挑战与对策