读写Stellaris Cortex-M3片上RAM和FLASH

本文介绍如何利用Cortex-M3的MPU动态开辟存储区域,实现对RAM和FLASH的读写操作。通过设置MPU权限,创建读写控制的内存区,并在发生错误时触发中断服务子程序。确保正确操作后,即可启用MPU并执行读写,最后解除MPU保护以释放内存。
摘要由CSDN通过智能技术生成
概述为:

可以用片上MPU单元开辟一块存储区域,通过指令读-写该区域,实现数据的自定义存储-读取。该操作对片上RAM和FLASH同样有效。该操作是动态的,根据需求建立MPU内存区域,用完之后可以释放内存。

除了LM3S101和LM3S102之外,Stellaris M3都有片上MPU单元,有无片上ROM并不影响MPU的使用。

参考例程来自:SW-EK-LM3S8962-8555(无片上ROM) 或SW-EK-LM3S3748-8555(有片上ROM)等的例程mpu-fault。

操作流程描述为:
  1. 定义MPU控制的存储区域,包括地址、大小、使能、读写控制
  2. 编写MPU出错中断服务子程序
  3. 使能MPU。注意,如果对MPU保护的区域进行不正确访问,如对read-only的区域写数据,则用户自定义的MPU出错中断服务子程序会产生出错信息,并除能MPU。因此要保证对MPU保护区域正确操作,并注意使能MPU。
  4. 对MPU控制区域进行读-写。
  5. 除能MPU保护,释放内存,这样其他部分程序可以使用该区域。

实例讲解:

1、定义MPU控制区域,使用MPURegionSet函数

    //
    // Configure an executable, read-only MPU region for flash.  It is an 8 KB
    // region with the last 1 KB disabled to result in a 7 KB executable
    // region.  This region is n
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值