栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

FLASH操作记录

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FLASH操作记录

使用的单片机为GD403系列,要操作的数据flash地址位于bank1,最小操作单位为一页,即4k。下面程序演示操作一页中部分内存空间

                #define LSM6DSR_BIAS_MAGIC 0xAAAA5555
                 uint32_t magic = LSM6DSR_BIAS_MAGIC;
				uint32_t *data_flash = (uint32_t *)ezbsp_RTOS_malloc(0x1000);//申请4k字节内存空间
			    ezbsp_fmc_read(LSM6DSR_BIAS_MAGIC_ADDR, data_flash, 0x400);//将原始数据读出来 保存在data_flash中  因为data_flash是32位的,所以读的个数要除以4  
				ezbsp_fmc_erase_pages(LSM6DSR_BIAS_MAGIC_ADDR,0x400);//擦除一整页  此函数入参也为32位整形数
							
				memcpy((uint8_t*)((uint32_t)data_flash+(LSM6DSR_BIAS_MAGIC_ADDR-LSM6DSR_BIAS_MAGIC_ADDR)),&magic,4);//将要写入的数据拷贝到data_flash中
				memcpy((uint8_t*)((uint32_t)data_flash+(LSM6DSR_BIAS_ACC_ADDR-LSM6DSR_BIAS_MAGIC_ADDR)),&gsensor_offset.acc,4);//同上
				memcpy((uint8_t*)((uint32_t)data_flash+(LSM6DSR_BIAS_GYRO_ADDR-LSM6DSR_BIAS_MAGIC_ADDR)),&gsensor_offset.gyro,4*3);//同上
				
				ezbsp_fmc_program(LSM6DSR_BIAS_MAGIC_ADDR, data_flash, 0x400);//将组合好的data_flash写入页内存中
				ezbsp_RTOS_free(data_flash);//将malloc的内存释放掉
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号