2. 在Target 页面中,Data Model选项,4选中Medium或Large,
3. 解释:
- 选中SMALL只能访问64K以内的空间,以外的空间只能有内部函数访问
- 选中Medium 可以访问1M以内的空间
- 选中Large可以访问全部空间
1.F5XX 430X
2.选择Large small medium 产生效果是改变指针变量所占字节个数.IAR中指针变量默认2个字节,选择large占用4个字节,那么指针就可以访问超过64K范围的地址.
3.可以采用IAR内部函数, */
void __data20_write_char (unsigned long __addr,
unsigned char __value);
void __data20_write_short(unsigned long __addr,
unsigned short __value);
void __data20_write_long (unsigned long __addr,
unsigned long __value);
unsigned char __data20_read_char (unsigned long __addr);
unsigned long __data20_read_long (unsigned long __addr);
5438的flash操作方法
请教MSP430F5438有关flash操作的问题,代码见下,为什么固定地址的flash没有改变?
代码:
void main(void)
{
unsigned long SEGMENT = 0x20000ul;
WriteFlash(SEGMENT);
FlashErase(SEGMENT);
while(1);
}代码:
//擦除Flash指定地址:adr指定地址Y
void FlashErase(unsigned long pAddr)
{
uchar * Flash_ptr = (uchar *)pAddr;
_DINT();
while(BUSY & FCTL3);
FCTL3 = FWKEY;
FCTL1 = FWKEY+ERASE;
*Flash_ptr = 0;
while(BUSY & FCTL3);
FCTL3 = FWKEY+LOCK;
_EINT();
}代码:
//写入Flash指定地址:adr指定地址,
void WriteFlash(unsigned long pAddr)
{
_DINT();
unsigned int i;
uchar * Flash_ptr = (uchar *)pAddr;
while (FCTL3&BUSY);
FCTL3 = FWKEY;
FCTL1 = FWKEY+WRT;
for(i = 0; i < 128; i++)
{
*(Flash_ptr++) = record1[i];
while(!(WAIT & FCTL3));
}
while (FCTL3&BUSY);
FCTL1 = FWKEY;
FCTL3 = FWKEY+LOCK;
_EINT();
}
上一篇:LCD人机交互的数据采集系统
下一篇:DS1302的单片机程序
推荐阅读最新更新时间:2024-03-16 15:19
设计资源 培训 开发板 精华推荐
- Littelfuse 高效 • 可靠 • 精准的功率控制和电路保护方案在工业、交通、通讯、医疗及新能源中的应用
- Molex紧凑型Type-C连接器 为您的设计节约宝贵空间!下载好礼送!
- Littelfuse【智能家居的电路保护方案】在线研讨会 11月22日10点 强势登场!预报名、参与研讨会赢好礼!
- 泰克WiFi预一致性测量方案介绍会 填问卷 赢好礼
- 泰克多媒体总线专题之《DDR Memory》,下载赢好礼!
- 看是德科技5G精彩专题,让你了解更多关于5G的那些事~ 下载赢好礼!
- 下载设计资源,赢取“会说话”的啤酒托!
- TE 物联网专属平台齐上线,您值得拥有的专业全能助手
- 【西门逛中发】之初识中发