MSP430访问64K以外地址的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MSP430访问64K以外地址的方法
1. 在IAR 的集成开发环境中.选中你的工程,右键,点options,
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();
}。

相关文档
最新文档