如何访问MSP430F5438单片机64K外的flash

发布者:SparkCrafter最新更新时间:2016-11-03 来源: eefocus关键字:MSP430F5438  单片机  flash 手机看文章 扫描二维码
随时随地手机看文章
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();
}

关键字:MSP430F5438  单片机  flash 引用地址:如何访问MSP430F5438单片机64K外的flash

上一篇:LCD人机交互的数据采集系统
下一篇:DS1302的单片机程序

推荐阅读最新更新时间:2024-03-16 15:19

51单片机简易波形发生器(正弦波 锯齿波 三角波)
下面是51单片机简易波形发生器源程序: #include AT89X52.h #include math.h #define ADDR1 0x2c //MAX5820LEUA sbit key_sin=P1^0; sbit key_tran=P1^2; sbit key_tooth=P1^4; sbit SCL = P2 ^ 0; sbit SDA = P2 ^ 1; unsigned char code sin = //正弦表 { 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
[单片机]
51<font color='red'>单片机</font>简易波形发生器(正弦波 锯齿波 三角波)
51单片机多路测温报警系统(AT89C51、多个DS18B20、LCD1602)
一、简介 此系统主要由AT89C51、多个DS18B20温度模块和LCD1602组成。 大致的原理是多个DS18B20按顺序采集温度到的数据传送给AT89C51的P2.7,最后通过LCD1602显示当前的实时温度,按键可以设置上下限温度,根据温度判断是否需要报警。 二、运行效果图 模拟仿真运行 三、部分代码 /*想要更多项目私wo!!!*/ #include reg52.h #include intrins.h unsigned int iTempDataH; unsigned int SetTemp = 30; int SetTemp1 = 1; int num = 0; //ÅжÏæָÁî void
[单片机]
51<font color='red'>单片机</font>多路测温报警系统(AT89C51、多个DS18B20、LCD1602)
8051不死!! Silicon Lab用0.3美元力守城池
近年由于ARM不断以Cortex-M0与M0+猛攻传统8位元MCU市场,使得诸多MCU业者开始纷纷转向ARM的怀抱,挥别既有的8051架构,改采ARM的Cortex-M,像是英飞凌、ST(意法半导体)及NXP(恩智浦半导体)都可说是相当知名的业者,不过,现阶段也有不少业者固守自有或是传统的8051架构,Silicon Lab就是最好的例子之一,尽管该公司先前已经采用Cortex-M3核心进军32位元MCU市场。 附图 : Silicon Lab将产品价格下杀0.3美元,力守8051 MCU城池 近年来,马达控制一直是众家MCU业者所急欲抢攻的市场,Silicon Lab当然也没有置身事外,近期所推出的F85x/6x MCU,就是
[嵌入式]
8051不死!! Silicon Lab用0.3美元力守城池
51单片机IO口模拟串口通讯的设计
#include sbit BT_SND =P1^0; sbit BT_REC =P1^1; IO 口模拟232通讯程序 使用两种方式的C程序 占用定时器0 #define MODE_QUICK #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_DISABLE TR0=0; sbit ACC0= ACC^0; sbit ACC1= ACC^1; sbit ACC2= ACC^2; sbit ACC3= ACC^3; sbit ACC4= ACC^4; sbit ACC5= ACC^5; sbit ACC6= ACC^6; sbit AC
[单片机]
基于msp430单片机定时器的使用方法解析
通过计算设置周期。 #include void main( void ) { // Stop watchdog timer to prevent TIme out reset WDTCTL = WDTPW + WDTHOLD; //WDTCTL = 0X5A80;关狗 CCTL0 = CCIE; //使能CCR0中断 CCR0 = 4095; //设置周期为0.5s TACTL = TASSEL_2 + ID_2 + MC_1; //时钟源的选择,分频,模式 P2DIR = 0XFF; // P2OUT = 0XFF; _EINT(); LPM0; } #pragma vector = TIMERA0_VECTOR __inter
[单片机]
基于msp430<font color='red'>单片机</font>定时器的使用方法解析
430单片机时钟系统与复位系统的配置(1)
msp430单片机的时钟系统和复位系统涉及到5个引脚 时钟系统: XIN XOUT/TCLK XT2IN XT2OUT 8 9 52 53引脚 复位系统: RST 58引脚 一:首先 了解时钟系统:单片机运行需要时钟支持,就像计算机的CPU一样,如果没有时钟电路来产生时钟驱动单片机,那单片机就不能执行程序 msp430单片机已经在内部集成了时钟电路,只需的单片机的两个振荡电路输入输出引脚 加上晶振以及两个电容即可 外部的晶振 我把它理解成信号源,通过这个震荡电路,就可以向单片机内部输入时钟信号了。 单片机有内部时钟方式和外部时钟方式两种:(1)单片机的XIN和XOUT内部有一片内振荡器结构,但仍需要在XIN和X
[单片机]
430<font color='red'>单片机</font>时钟系统与复位系统的配置(1)
51单片机驱动TEA5767调频收音机芯片C程序
完整的源代码下载地址: http://www.51hei.com/bbs/dpj-19294-1.html 下面是程序的主要部分: /*----------- TEA5767 驱动-----------*/ /*------ 外部 晶振 为 12MHz-------*/ /*--------最后修改2011.02.26-------*/ #include STC12C5620AD.H #include IIC.H #include delay.h #include Radio.H #include Channel_Handle.H #define Max_Fre
[单片机]
51<font color='red'>单片机</font>驱动TEA5767调频收音机芯片C程序
智能化倒车雷达主控芯片系统概述
1 引言 随着汽车普及率的逐年增加,消费者在将汽车作为交通运输工具的同时,对汽车配置有了更多的要求,尤其是对舒适性和安全性提出了更高的要求。对于很多司机尤其是新手来说,倒车无疑是件非常头痛的事,倒车雷达正好可以帮司机解决这个难题,因此越来越多的商家进入了这个市场。从目前市场情况看,国内倒车雷达生产厂家都是使用单片机配合外围运放、锁相环电路完成超声波测距并提供报警的工作,缺乏单芯片方案,而使用单片机方案要求生产厂家必须具备开发软硬件的能力,而且利用软件控制存在不稳定的因素。如果能用专用芯片实现整个系统功能,对倒车雷达生产商来说,不仅能降低开发和生产成本,对整机的可靠性也有很大提高。 2 系统概述 2.1 系统框图
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved