专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
飞思卡尔单片机读flash
2019-03-26 08:00
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
NXP MCU
12800
7
1356
飞思卡尔单片机怎么读flash 我仿真的时候,读出全是FF 也不知道读对不
读的过程 dat = *Addr Addr是十六位的,dat是8位的
中间需要不需要加修饰符来表明指针是指向flash区的,高手们给指导一下吧,我就不用再摸索了 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
Li_Lei
2019-03-26 22:38
/********************************************flash.h**********************************/
#define PASS 0
#define FAIL 1
#define FLASHCMD_ERASE 0x40
#define FLASHCMD_PROG 0x20
#define FLASHCMD_CBEF 0x80
#define EEPROM_VERIFICATION_CODE 0x5C5C
#define EEPROM_FACTORY_VERIFICATION 0xAA55
#define EEPROM_START_ADDRESS 0x1400
#define EEPROM_END_ADDRESS 0x1800
#define EEPROM_PAGE_SIZE 8
struct System_Config {
uint16 Verification_Code; //检验码1
uint16 Factory_Setting_Verification_Code; //出厂设置校验码
uint16 notused1;
uint16 notused2;
/***********************can总线设置*******************************/
uint16 Default_ID; //默认11位标准ID值,扩展帧此数值在高11位即28~18
uint16 notused4;
uint16 notused5;
uint16 notused6;
uint16 notused7;
uint16 notused8;
uint16 notused9;
uint16 notused10;
//滤波器
uint16 Can_Identifier_Acceptance01; //滤波值
uint16 Can_Identifier_Mask01; //掩位
uint16 Can_Identifier_Acceptance23;
uint16 Can_Identifier_Mask23;
uint16 Can_Identifier_Acceptance45;
uint16 Can_Identifier_Mask45;
uint16 Can_Identifier_Acceptance67;
uint16 Can_Identifier_Mask67;
};
/****************************通道参数设置,每个通道8字节****************************/
struct S_Channel_Setting { //顺序影响写入。。。
uint16 Ch_Alarm_Min; //通道1报警下限
uint16 Ch_Alarm_Max; //通道1报警上限
uint16 Ch_Warning_Min; //通道1提示下限
uint16 Ch_Warning_Max; //通道1提示上限
};
//位于eeprom的通道设置起始地址
#define EEPROM_CHANNELSETTING_STARTADDRESS (EEPROM_END_ADDRESS-32*16)
#define WARNING_VAL32(ch) (((uint32)(Channel_Setting_Array[ch].Ch_Warning_Min)<<16)+(uint32)(Channel_Setting_Array[ch].Ch_Warning_Max))
#define ALARM_VAL32(ch) (((uint32)(Channel_Setting_Array[ch].Ch_Alarm_Min)<<16)+(uint32)(Channel_Setting_Array[ch].Ch_Alarm_Max))
extern struct System_Config * System_Config_Current; //系统当前设置
extern struct S_Channel_Setting * Channel_Setting_Array;
extern uint8 EEPRom_Init(void);
extern uint8 Save_System_Config_Default(void);
extern uint8 Save_System_Parameter(unsigned char offset,unsigned int val);
extern uint8 Save_Channel_Setting(unsigned char chx,unsigned long val);
加载中...
查看其它7个回答
一周热门
更多
>
相关问题
相关文章
IMX6UL定时器按键消抖实验
0个评论
IMX6UL 裸机C语言IO 输入中断编程
0个评论
Cortex-A7 IO 输入中断系统分析
0个评论
IMX6UL裸机实现C语言按键输入实验
0个评论
IMX6UL裸机实现C语言蜂鸣器实验
0个评论
通过结构体的方式来定义和使用寄存器地址
0个评论
IMX6UL裸机实现C语言LED点亮与闪烁
0个评论
I.MX6U处理器LED灯点亮汇编程序之命令行方式编译与链接
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#define PASS 0
#define FAIL 1
#define FLASHCMD_ERASE 0x40
#define FLASHCMD_PROG 0x20
#define FLASHCMD_CBEF 0x80
#define EEPROM_VERIFICATION_CODE 0x5C5C
#define EEPROM_FACTORY_VERIFICATION 0xAA55
#define EEPROM_START_ADDRESS 0x1400
#define EEPROM_END_ADDRESS 0x1800
#define EEPROM_PAGE_SIZE 8
struct System_Config {
uint16 Verification_Code; //检验码1
uint16 Factory_Setting_Verification_Code; //出厂设置校验码
uint16 notused1;
uint16 notused2;
/***********************can总线设置*******************************/
uint16 Default_ID; //默认11位标准ID值,扩展帧此数值在高11位即28~18
uint16 notused4;
uint16 notused5;
uint16 notused6;
uint16 notused7;
uint16 notused8;
uint16 notused9;
uint16 notused10;
//滤波器
uint16 Can_Identifier_Acceptance01; //滤波值
uint16 Can_Identifier_Mask01; //掩位
uint16 Can_Identifier_Acceptance23;
uint16 Can_Identifier_Mask23;
uint16 Can_Identifier_Acceptance45;
uint16 Can_Identifier_Mask45;
uint16 Can_Identifier_Acceptance67;
uint16 Can_Identifier_Mask67;
};
/****************************通道参数设置,每个通道8字节****************************/
struct S_Channel_Setting { //顺序影响写入。。。
uint16 Ch_Alarm_Min; //通道1报警下限
uint16 Ch_Alarm_Max; //通道1报警上限
uint16 Ch_Warning_Min; //通道1提示下限
uint16 Ch_Warning_Max; //通道1提示上限
};
//位于eeprom的通道设置起始地址
#define EEPROM_CHANNELSETTING_STARTADDRESS (EEPROM_END_ADDRESS-32*16)
#define WARNING_VAL32(ch) (((uint32)(Channel_Setting_Array[ch].Ch_Warning_Min)<<16)+(uint32)(Channel_Setting_Array[ch].Ch_Warning_Max))
#define ALARM_VAL32(ch) (((uint32)(Channel_Setting_Array[ch].Ch_Alarm_Min)<<16)+(uint32)(Channel_Setting_Array[ch].Ch_Alarm_Max))
extern struct System_Config * System_Config_Current; //系统当前设置
extern struct S_Channel_Setting * Channel_Setting_Array;
extern uint8 EEPRom_Init(void);
extern uint8 Save_System_Config_Default(void);
extern uint8 Save_System_Parameter(unsigned char offset,unsigned int val);
extern uint8 Save_Channel_Setting(unsigned char chx,unsigned long val);
一周热门 更多>