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

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.dtcms.com/a/356956.html

相关文章:

  • DBeaver 的 PostgreSQL 驱动包默认存储位置
  • 序列化和反序列的学习
  • 移动社交时代电商流量获取新路径:基于社群与开源AI智能名片链动2+1模式S2B2C商城小程序的探索
  • 【基础-单选】关于Button组件,下面哪个样式是胶囊型按钮
  • 大模型之RAG, 检索增强生成
  • 【若依】RuoYi-Vue-springboot3分离版
  • RS485、RS232、RS422协议
  • 浔川代码编辑器v2.1.0公测版上线时间公告
  • 基于FPGA的DDR3读写实验学习
  • LeetCode算法日记 - Day 26: 归并排序、交易逆序对的总数
  • 河南葱香鸡蛋,嫩滑香浓超棒!
  • 企业微信如何设置长期有效的获客二维码?3步生成!
  • 机器人视觉检测
  • 决胜财报季,证券投研如何实现财报自动化分析录入?
  • 企微智能表格对接业务系统
  • 指纹手机技术:破解亚马逊多账号运营痛点的底层逻辑与实践
  • useEffect中直接使用 await报错
  • 直流电机驱动与TB6612
  • Shell 中 ()、(())、[]、{} 的用法详解
  • X-anylabeling3.2标注工具的安装与使用
  • Python五天极限复习
  • 突破传统企业组网瓶颈:某科技公司智能组网服务项目深度解析
  • STL容器的连续性及其访问:vector和deque
  • 刷题日记0829
  • 机器学习算法全景解析:从理论到实践
  • idea控制台从properties中取值然后打印出现控制台乱码问题
  • 2025年热门职业资格证书分析
  • 使用生成对抗网络增强网络入侵检测性能
  • 哈希算法完全解析:从原理到实战
  • AutoDL算力云上传文件太慢了如何解决?