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

杰发科技AC7840——如何把结构体数据写到Dflash中

1. 结构体数据被存放在Pflash中

正常情况下,可以看到全局变量的结构体数据被存放在Pflash中

数字部分存在RAM中

2. 最小编程单位

8字节编程,因此如果结构体存放在Dfalsh中,进行写操作,需要写8字节的倍数

第一种办法:

测试之后,Dflash存储结构体数据,读写没问题。pflash中还有字符串数据,这个应该还要想办法解掉。

// 定义8字节对齐的配置结构体
typedef struct {uint8_t chipModel[12];   // 芯片型号字符串(AC7840X_HC32F460等)uint16_t configVersion;  // 配置版本号uint32_t deviceId;       // 设备IDuint16_t configFlags;    // 配置标志uint8_t opMode;          // 操作模式uint8_t reserved1;       // 保留字节(用于对齐)uint32_t calibration[2]; // 校准数据uint16_t checksum;       // 校验和uint8_t reserved2[14];    // 保留字节(确保总大小为32字节)
} __attribute__((packed, aligned(8))) DeviceData;  // 强制8字节对齐// 将结构体转换为字节流
void DeviceData_to_bytes(const DeviceData* data, uint8_t* buffer) {memcpy(buffer, data, 40);
}// 从字节流恢复结构体
void bytes_to_DeviceData(const uint8_t* buffer, DeviceData* data) {memcpy(data, buffer, 40);
}
__attribute__((section("dflash_data")))
DeviceData new_data;  // 注意:初始值不会自动存入DFlashvoid initDefaultConfig(DeviceData* config) {memset(config, 0, sizeof(DeviceData));strncpy((char*)config->chipModel, "AC78406HGLA", 11);config->configVersion = 0x0100;config->deviceId = 0x6666;config->configFlags = 0x7777;config->opMode = 0x03;config->calibration[0] = 0x88888888;config->calibration[1] = 0x99999999;config->checksum = 0x1234;
}void Job_DflashDataWrite(void)
{initDefaultConfig(&new_data);DeviceData_to_bytes(&new_data,g_wBuff);status_t ret = STATUS_SUCCESS;FLASH_DRV_UnlockCtrl();FLASH_DRV_EraseBlock(&g_Flash_Config, TestDflashWriteAddress);FLASH_DRV_Program(&g_Flash_Config, TestDflashWriteAddress, 40, g_wBuff);FLASH_DRV_LockCtrl();ret = 100;
}DeviceData read_data;
void Job_DflashDataRead(void)
{uint16_t i = 0;uint8_t DflashReadBuf[TestSize] = {0};FLASH_DRV_Read(&g_Flash_Config,TestDflashWriteAddress, DflashReadBuf,40);   /*!< ???????*/bytes_to_DeviceData(DflashReadBuf,&read_data);i = 100;
}Job_DflashDataWrite();
Job_DflashDataRead();  

第二种办法:

注意:

pack没有加DFlash算法,在keil中看不到数据,直接看hex可以看到。

相关文章:

杰发科技AC7840——如何把结构体数据写到Dflash中

1. 结构体数据被存放在Pflash中 正常情况下&#xff0c;可以看到全局变量的结构体数据被存放在Pflash中 数字部分存在RAM中 2. 最小编程单位 8字节编程&#xff0c;因此如果结构体存放在Dfalsh中&#xff0c;进行写操作&#xff0c;需要写8字节的倍数 第一种办法&#xff1a;…...

vue路由小案例

vue路由小案例 案例需求案例实现小结 案例需求 创建二级路由&#xff0c;掌握嵌套路由点击内容&#xff0c;根据不同id实现页面的跳转&#xff0c;掌握传参方式利用routerlink标签封装的类&#xff0c;实现高亮实现重定向&#xff0c;自动跳转到二级页面 案例实现 &#xff…...

链表面试题9之环形链表进阶

那么上一题我们已经知道了双指针的变法以及拓展的用法&#xff0c;那么这里我们直接难度升级。 想回去复习的这里放个链接&#xff1a;链表的面试题8之环形链表-CSDN博客 题目链接&#xff1a;142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 我们来看这道题目主要…...

CentOS 7上BIND9配置DNS服务器指南

详细说明如何在 CentOS 7 上配置 BIND9 扮演这四种不同的 DNS 角色&#xff0c;包括配置文件示例和注意事项。 BIND9 可以扮演 DNS 体系中的多种角色&#xff1a; 权威DNS服务器 (Authoritative DNS Server): 存储特定域名&#xff08;例如 example.com&#xff09;的官方DNS记…...

Pytorch针对不同电脑配置详细讲解+安装(CPU)

一、前言 安装pytorch前&#xff0c;应按照我前边的博文中&#xff0c;安装完anaconda和pycharm&#xff0c;并且配置完环境变量以后哈。 Pytorch是什么&#xff1f; 它是一个库,是一个开源的机器学习框架&#xff0c;专注于深度学习任务&#xff0c;由Facebook的人工智能研…...

知识体系_数据分析挖掘_基尼系数

1 概述 基尼系数(gini coefficient)表示在全部居民收入中,用于进行不平均分配的那部分收入占总收入的百分比。社会中每个人的收入都一样、收入分配绝对平均时,基尼系数是0;全社会的收入都集中于一个人、收入分配绝对不平均时,基尼系数是1。现实生活中,两种情况都不可能发…...

Fiddler抓包教程->HTTP和HTTPS基础知识

1.简介 有的伙伴可能会好奇&#xff0c;不是讲解和分享抓包工具,怎么这里开始讲解HTTP和HTTPS协议了。这是因为你对HTTP协议越了解&#xff0c;你就能越掌握Fiddler的使用方法&#xff0c;反过来你越使用Fiddler&#xff0c;就越能帮助你了解HTTP协议。 Fiddler无论对开发人员…...

超级维特根斯坦

AI智能体核心指令:语言智慧融合体 - 深度思辨、专业应用与协同创新大师 1. 角色设定 (Persona) 你将扮演一位“语言智慧融合体”AI,一个集大成的、具备卓越情境智能、精妙引导艺术与长时程战略规划能力的语言思想、艺术与应用科学伙伴。你的核心人格与方法论基于以下杰出贡…...

探索付费社群的成功之道:生财与群响的深度解析

随着互联网技术的发展和用户需求的多样化&#xff0c;付费社群作为一种新型商业模式逐渐崭露头角&#xff0c;并迅速成为众多创业者和个人寻求知识、资源以及人脉的重要平台。本文将深入探讨两个成功的付费社群——生财和群响&#xff0c;分析它们如何在各自领域内取得显著成就…...

【b站计算机拓荒者】【2025】微信小程序开发教程 - 3 项目目录结构

3 项目目录结构 3.1 项目目录结构 3.1.1 目录介绍 # 1 项目主配置文件&#xff0c;在项目根路径下&#xff0c;控制整个项目的-app.js # 小程序入口文件&#xff0c;小程序启动&#xff0c;会执行此js-app.json # 小程序全局配置文件&#xff0c;配置小程序导航栏颜色等信息…...

TuyaOpen横空出世!涂鸦智能如何用开源框架重构AIoT开发范式?

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引子:AIoT开发的“不可能三角”被打破 当AI与物理世界深度融合的浪潮席卷全球,开发者们却始终面临一个“不可能三角”——开发效率、技术深度与商业化落地难以兼得。 …...

物联网(IoT)智能项目全景指南:技术构架、实现细节与应用实践

目录 一、物联网项目的核心组成和发展方向 1. 核心组成 2. 发展趋势 二、系统设计的详细流程 1. 需求分析与方案规划 2. 硬件方案深度设计 3. 软件架构设计 4. 方案示意图&#xff08;架构图&#xff09; 三、关键技术深度剖析 1. 传感器及其接口技术 2. 嵌入式MCU选…...

【c# 类型转换中 as 和()】

在 C# 中&#xff0c;as 关键字和强制类型转换&#xff08;()&#xff09;都用于对象类型的转换&#xff0c;但它们在语法、行为和用途上有显著的区别。 1. 语法区别 强制类型转换&#xff08;()&#xff09; 语法&#xff1a;(TargetType)expression用途&#xff1a;将一个…...

Elasticsearch 实战面试题,每个题目都会单独解析

Elasticsearch 在 Java 中最常用的客户端是什么&#xff1f;如何初始化一个 RestHighLevelClient&#xff1f;如何用 Spring Boot 快速集成 Elasticsearch&#xff1f;Spring Data Elasticsearch 如何定义实体类与索引的映射&#xff1f; ES的倒排索引和正排索引的区别及适用场…...

01-通过纯js理解数据驱动图表概念

现有1组一维数组数据&#xff1a; const data [720, 320, 531, 120, 230, 387, 258] 通过forEach循环该data&#xff0c;根据数据值&#xff0c;循环出对应长度的 rect 标签&#xff0c;计算好横纵坐标的位置&#xff0c;并在最后将各个 rect标签 append 到 svg 标签中。如图所…...

Java DTO 深度解析

一、什么是DTO&#xff1f; DTO&#xff08;Data Transfer Object&#xff09; 是一种用于在不同层&#xff08;如Controller层、Service层&#xff09;之间传输数据的对象设计模式。其核心目的是封装数据&#xff0c;减少网络传输开销&#xff0c;同时避免直接暴露领域模型&a…...

Python、Pytorch、TensorFlow、Anconda、PySide、Jupyter

一、Python Python是一种高级、通用、解释型的开源编程语言,由Guido van Rossum于1990年代初设计。它具有以下显著特点: 1‌.语言特性‌ (1) 语法简洁易读,接近自然语言(如print(“Hello World!”)) (2) 采用强制缩进而非大括号定义代码块 (3) 支持面向对象、函数式和过…...

视频监控联网系统GB28181协议中互联结构详解

文章目录 4.1 SIP 监控域互联结构4.1.1 概述4.1.2 区域内联网4.1.3 跨区域联网4.1.4 联网方式4.1.4.1 级联4.1.4.2 互联 4.2 SIP 监控域与非 SIP 监控域互联结构4.2.1 概述4.2.2 控制协议网关4.2.3 媒体网关 智联视频超融合平台介绍 4.1 SIP 监控域互联结构 4.1.1 概述 联网系…...

系统编程的标准IO

标准IO 头文件需求&#xff1a; #include <stdio.h>1.fopen和fclose (1)fopen fopen的函数功能是打开一个文件。 首先看看fopen的函数声明&#xff1a; FILE *fopen(const char *path, const char *mode);第一个参数path是文件地址&#xff0c;传入的是不可变的字符…...

windows安装WS,实测可行

参考链接 1、 wsl -l -v 查看哪些ubuntu环境在运行 2、wsl -t Ubuntu 停止当前的Ubuntu 3、wsl --install -d Ubuntu-22.04 下载ubunt 4、wsl --unregister Ubuntu-22.04 移除ubuntu 5、wsl --export Ubuntu-22.04 F:\Ubuntu-22.04\Ubuntu-22.04.tar 导出 Ubuntu-22.04 为 .ta…...

【蓝桥杯真题精讲】第 16 届 Python A 组(省赛)

文章目录 T1 偏蓝 (5/5)T2 IPv6 (0/5)T3 2025 图形 (10/10)T4 最大数字 (10/10)T5 倒水 (15/15)T6 拼好数 (0/15)T7 登山 (20/20)T8 原料采购 (20/20) 更好的阅读体验 高速访问&#xff1a;https://wiki.dwj601.cn/ds-and-algo/lan-qiao-cup/16th-python-a/永久链接&#xff1…...

栈和队列的模拟实现

栈和队列的模拟实现 容器适配器priority_queue(优先级队列&#xff09;priority_queue的使用priority_queue的模拟实现&#xff1a; 仿函数什么叫仿函数&#xff1f;需要自己实现仿函数的情况&#xff1a; 栈的模拟实现队列的模拟实现deque&#xff08;vector和list的缝合怪&am…...

python学习day3

1比较运算符号&#xff08;生成布尔类型&#xff09; print(98大于90吗,98>90) print(98小于90吗,98<90) print(98等于90吗,9890) print(98不等于90吗,98!90)2逻辑运算符号 print(8>7 and 6>5) print(9>8 and 7<5) print(8<7 and 10/0) #当第一个表达式结…...

Java转Go日记(四十二):错误处理

1.1.1. 错误处理 执行任何操作后&#xff0c;如果发生任何错误&#xff0c;GORM将其设置为*DB的Error字段 if err : db.Where("name ?", "jinzhu").First(&user).Error; err ! nil {// 错误处理...}// 如果有多个错误发生&#xff0c;用GetErrors获…...

考研系列-408真题计算机组成原理篇(2020-2023)

写在前面 此文章是本人在备考过程中408真题计算机组成原理部分(2020年-2023年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2020年 1.机器字长相关 指令字长和机器字长没有明确的关系,但是一般来说…...

经典面试题:TCP 三次握手、四次挥手详解

在网络通信的复杂架构里&#xff0c;“三次握手”与“四次挥手”仿若一座无形的桥梁&#xff0c;它们是连接客户端与服务器的关键纽带。这座“桥梁”不仅确保了连接的稳固建立&#xff0c;还保障了连接的有序结束&#xff0c;使得网络世界中的信息能够顺畅、准确地流动。 在面…...

Raft算法学习(1)博士论文大纲

参考资料 原文一共257页&#xff0c;其中前六章为算法重点介绍&#xff0c;第七章有点像A/B TEST 论文标题&#xff1a; 共识&#xff1a;连接理论与实践 (CONSENSUS: BRIDGING THEORY AND PRACTICE) 作者&#xff1a; Diego Ongaro 日期&#xff1a; 2014年8月 机构&#xff…...

PDF处理控件Aspose.PDF教程:以编程方式将 PDF 导出为 JPG

在本节中&#xff0c;我们将探讨如何使用 Aspose.PDF 库将 PDF 文档转换为 JPG 图像。Aspose.PDF 是一个功能强大且用途广泛的库&#xff0c;专为需要以编程方式处理 PDF 文件的开发人员而设计。它提供了丰富的功能&#xff0c;可用于跨多个平台创建、编辑和转换 PDF 文档。其主…...

记录一下flutter项目自己封窗的弹窗

在评委项目开发中我使用到的弹窗dialog与modal sheet底部弹出组件&#xff0c;我对其进行了基础的封装&#xff0c;以适用于本项目&#xff0c;代码如下&#xff1a; class JudgeDialog {// 内容边距static EdgeInsetsGeometry _contentPadding(String? content) {return c…...

计算机网络基础概念

网络通信的本质就是进程间通信。我们日常使用的聊天软件、在线视频软件等&#xff0c;事实上都是本机客户端进程与远地服务端进程之间进行网络通信所实现的。我们与朋友进行远程聊天&#xff0c;本质上是从本地客户端将聊天内容发送给服务端&#xff0c;再由服务端转发给目标客…...

【原创】ubuntu22.04下载编译AOSP 15

repo init -u http://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b master source build/envsetup.sh lunch aosp_cf_x86_64_phone-trunk_staging-userdebug find ./ -name “index.lock” -exec rm -f {} ; find ./ -name “index.lock” -exec rm -i {} ;…...

鸿蒙PC新物种发布!华为MateBook Pro/ Fold深度解析:折叠屏革命与生态破局

华为在5月19日发布会上推出的两款鸿蒙电脑新品——华为MateBook Pro和HUAWEI MateBook Fold 非凡大师&#xff0c;标志着其在PC领域的深度布局和技术突破。结合发布会信息和行业背景&#xff0c;以下为分析及影响预测&#xff1a; 一、产品核心亮点及创新 华为MateBook Pro&…...

数据要素如何重构人力资本升级

一、数字经济时代 在传统工厂车间&#xff0c;老师傅的经验智慧曾是企业最宝贵的资产。而在现代的数字化办公室&#xff0c;每天产生的千万条数据流正在重塑企业创新规则。这个变革的核心密码锁定在两个关键维度&#xff1a;人力资本结构的质变与创新资源的智配。 数据要素与…...

【爬虫】12306自动化购票

上文&#xff1a; 【爬虫】12306查票-CSDN博客 下面是简单的自动化进行抢票&#xff0c;只写到预定票&#xff0c;没有写完登陆&#xff0c; 跳出登陆后与上述代码同理修改即可。 感觉xpath最简单&#xff0c;复制粘贴&#xff1a; 还有很多写法&#xff1a; 官网地址&#…...

保密行业工作沟通安全:吱吱软件的“四重防泄露”设计

“工作沟通安全威胁是指在金融、科技、医疗等保密行业中&#xff0c;错发、泄露、窃取一条消息或者一份文件&#xff0c;都有可能引发数据安全灾难性失控。以往的即时通讯软件仅依赖单一的加密手段&#xff0c;无法满足保密行业从发送、传输到接受全链路加密的更高规格的数据安…...

2001-2023年上市公司管理讨论与分析文本数据(MDA文本数据)

2001-2023年上市公司管理讨论与分析文本数据&#xff08;MD&A文本数据&#xff09; 1、时间&#xff1a;2001-2023年 2、来源&#xff1a;上市公司年报 3、格式&#xff1a;txt 4、样本量&#xff1a;6W 5、说明&#xff1a;“管理层讨论与分析”&#xff08;MANAGEME…...

Unity3D仿星露谷物语开发46之种植/砍伐橡树

1、目标 种植一棵橡树&#xff0c;从种子变成大树。 然后可以使用斧头砍伐橡树。 2、删除totalGrowthDays字段 修改growthDays的含义&#xff0c;定义每个值为到达当前阶段的累加天数。此时最后一个阶段就是totalGrowthDays的含义。所以就可以删除totalGrowthDays字段。 &…...

9-社区动态(Stack布局)

涉及知识点: stack布局 video组件 3.组件状态控制&#xff1a; State、Prop以及Link装饰器 组件状态控制&#xff1a;Observed&ObjectLink装饰器 课时: 2 1 任务 1.1 需求 完成社区动态功能&#xff0c;社区动态显示用户发布的跟游戏相关的短视频&#xff0c;自动循环…...

如何使用MATLAB NLP工具箱进行文本聚类

文章目录 前言一、核心流程与代码实现二、高级聚类技术三、评估聚类质量四、实战案例&#xff1a;新闻聚类五、优化技巧与注意事项 前言 在 MATLAB 中使用 NLP 工具箱进行文本聚类主要分为数据预处理、特征提取、相似度计算、聚类算法应用和结果分析五个核心步骤。以下是详细教…...

deepseek梳理java高级开发工程师es面试题

Elasticsearch 面试题及答案&#xff08;高级 Java 开发工程师版&#xff09; 基础概念 1. 解释 Elasticsearch 中的倒排索引是什么&#xff1f;为什么它比传统数据库更适合全文搜索&#xff1f; 答案&#xff1a; 倒排索引是一种将文档中的词项(token)映射到包含该词项的文…...

查看mysql配置文件my.cnf的位置

3.删除mysql相关文件 想要完全卸载mysql&#xff0c;不仅要卸载应用&#xff0c;配置文件及相关文件也需要一一清除&#xff0c;还原环境配置&#xff0c;减少一些麻烦。 sudo rm -rf /usr/local/mysql sudo rm -rf /etc/my.cnf sudo rm -rf /var/db/mysql sudo rm -rf /var/…...

PyTorch进阶实战指南:01自定义神经网络组件开发

PyTorch进阶实战指南&#xff1a;01自定义神经网络组件开发 前言 在深度学习领域&#xff0c;PyTorch凭借其动态计算图和灵活的模块化设计&#xff0c;已成为学术研究和技术落地的首选框架之一。本文聚焦于神经网络组件的自定义开发&#xff0c;旨在帮助开发者突破现成模型的限…...

【MySQL】04.数据类型

首先我们来看一下数据类型分类&#xff1a; 我们接下来对红色标识的进行介绍&#xff0c;其他的自行了解即可。 1. 数值类型 1.1 bit 我们以bit为例来介绍整型。 mysql> create table test_bit(-> sex bit(1)-> ); mysql> desc test_bit; -----------------…...

MCP专题 | 探索MCP服务器世界:增强AI能力的精选推荐

在人工智能快速发展的今天&#xff0c;模型上下文协议&#xff08;MCP&#xff0c;Model Context Protocol&#xff09;已成为一项重要的技术标准&#xff0c;它使AI模型能够安全地与外部资源交互。MCP服务器作为AI与工具、数据库和API之间的桥梁&#xff0c;极大地扩展了AI的功…...

深入解析OrientDB:多模型数据库的技术优势与实际应用

OrientDB 是一款开源的多模型 NoSQL 数据库&#xff0c;融合了文档数据库、图数据库和对象数据库的特性。它不仅支持灵活的数据建模&#xff0c;还提供了高性能的查询能力&#xff0c;适用于社交网络、物联网、内容管理等场景。本文详细探讨 OrientDB 的核心特性、应用场景&…...

芯片分享之AD976性能介绍

产品特征&#xff1a; D976和AD976A均为高速、低功耗、16位模数转换器(ADC)&#xff0c;采用5 V单电源供电。AD976A的吞吐速率为200 ksps&#xff0c;而AD976的吞吐速率为100 ksps。各器件均内置一个逐次逼近型开关电容ADC、一个2.5 V内部基准电压源和一个高速并行接口。最大功…...

Flutter - 集成三方库:数据库(sqflite)

数据库 $ flutter pub add sqlite $ flutter pub get$ flutter run运行失败&#xff0c;看是编译报错,打开Xcode工程 ⌘ B 编译 对比 GSYGithubAppFlutter 的Xcode工程Build Phases > [CP] Embed Pods Frameworks 有sqfite.framework。本地默认的Flutter工程默认未生成Pod…...

野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(三)用yolov5-face算法实现人脸检测

环境直接使用第一篇中安装好的环境即可 先clone yolov5-face项目 git clone https://github.com/deepcam-cn/yolov5-face.git 并下载预训练权重文件yolov5n-face.pt 网盘链接: https://pan.baidu.com/s/1xsYns6cyB84aPDgXB7sNDQ 提取码: lw9j &#xff08;野火官方提供&am…...

基于matlabcd7.x的无网格近似方法

无网格近似方法&#xff08;Meshless Methods&#xff09;是一类数值计算方法&#xff0c;用于解决偏微分方程&#xff08;PDEs&#xff09;问题&#xff0c;特别是在几何形状复杂或需要动态网格更新的场景中。与传统的有限元方法&#xff08;FEM&#xff09;相比&#xff0c;无…...

塔式服务器都有哪些重要功能?

塔式服务器作为一种拥有着独特立式设计的服务器&#xff0c;能够帮助企业节省一定的放置空间&#xff0c;提供一系列的功能和优势&#xff0c;可以运用在多种应用场景当中&#xff0c;下面将探讨一下塔式服务器的主要功能都有哪些&#xff1f; 塔式服务器可以支持基本的应用程序…...