.Net Micro Framework 模拟器详解---内存配置

摘要:对嵌入式设备来说,存储空间的大小无疑是一个很重要的参数,但是调试的时候我们通常无法方便地对不同内存大小的设备进行测试。这时候使用模拟器是一个很 好的选择,本文介绍了如何在.Net Micro Framework中通过代码和XML配置文件两种方式来配置模拟器的Memory(包括Ram和Flash Memory)。并使得模拟器具有持久存储的能 力。

在.Net Micro Framework中,提供了MemoryManager 类型(见Microsoft.SPOT.Emulator.Memory命名空间)来描述和模拟RAM和FLASH。不过这个类型本身并不直接提供属性 和方法来对模拟器的存储空间进行配置,而是提供了以下两个属性:RamManager和FlashManager 。这两个属性同属于微软提供的模拟器组件(Emulator Components)。它们 都是由Memorymanager跟据你的配置动态创建的。你可以在Emulator的配置文件里面来完成RAM和FLASH的配置,这我们将在后文讨论。

Random Access Memory (RAM)

前面提到的MemoryManager.RamManager是一个同名类型(RamManager)的属性,对于RamManager类型,唯一你可以设置(set)的属性就是Size,它表示了RAM的大小, 单位是byte。在配置文件里面,你需要先在”<Types>”的标签区域内将MemoryManager 和RamManager标签添加进来,这就像C#代码中的using一样,使得 EmulatorComponents内的MemoryManager 和RamManager标签能被模拟器的配置引擎解析出来。下面的XML代码演示了如何在配置文件里以一个16进制数0x2000000来设置32兆 的RAM:

<?xml version="1.0" encoding="utf-8"?>
<Emulator>
<Types>
<MemoryManager>Microsoft.SPOT.Emulator.Memory.MemoryManager</MemoryManager>
<RamManager>Microsoft.SPOT.Emulator.Memory.RamManager</RamManager>
</Types>
<EmulatorComponents>
<MemoryManager>
<RamManager type="RamManager">
<Size format="HexNumber">2000000</Size>
</RamManager>
</MemoryManager>
</EmulatorComponents>
</Emulator>

需要注意的是,模拟器的RAM默认情况下只有1Mbyte

之前我尝试在带有VGA(640x480)的LCD模拟器上尝试显示大图的时候,Visual Studio 会抛出以下异常:

Failed allocation for 51205 blocks, 614460 bytes

在System.OutOfMemoryException 中第一次偶然出现的 “Microsoft.SPOT.Graphics.dll”类型的异常

未处理的“System.OutOfMemoryException”类型的异常出现在Microsoft.SPOT.Graphics.dll 中。

在我把模拟器的内存配置为32兆之后就不再出现这个问题了。这是因为模拟器默认的RAM大小为1024kb.而我的图片640*480*16/8=bmp600kb+图片77kb+应用用程 序大小已经超过了RAM的分配限制。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索memory
, 模拟器
, 配置
, 类型
, outofmemoryexception
, emulator
, microsoft
, 模拟器详解
模拟命名空间
.net micro framework、micro framework、micro framework 4.5、microframework、.net microframework,以便于您获取更多的相关知识。

时间: 2025-01-02 11:02:42

.Net Micro Framework 模拟器详解---内存配置的相关文章

.Net Micro Framework 模拟器详解 – 基本原理

摘要:虚拟仪器(VI)技术在很多高成本的工业项目中扮演着越来越重要的角色,在电子产品的开发中,各种模拟器也为广大开发者方提供了便利,提高了生产力.本文介 绍了微软最新的嵌入式开发框架.Net Micro Framework的模拟器.阐述了模拟器的启动过程,链接组件和注册信息等基本工作过程和原理. .Net MF模拟器简介 .Net MF模拟器是一个.Net MF CLR的Windows 版的运行环境.运行时的核心部分(执行引擎,类型系统和GC等)和基础类库都和在实际设备上跑的MF一样.两者不同之

磁盘分区对齐详解与配置 – Linux篇

磁盘分区对齐详解与配置 – Linux篇 介绍 许多系统管理员可能不曾听过"磁盘分区对齐"之说,甚至一些有经验的存储管理员对分区对齐也不甚了解.磁盘分区不对齐现象是什么,为什么会造成比较严重的性能下降?相反,配置正确的分区起始位置(Offset)设置会使存储系统发挥更大的性能潜力.文章就磁盘分区对齐进行的介绍,并且给出了在Windows平台上如何配置的方法. 什么是磁盘分区对齐(Disk Alignment.Partition Alignment) Windows的磁盘有一种结构叫做M

linux系统下hosts文件详解及配置_linux shell

hosts文件 hosts -- the static table lookup for host name(主机名查询静态表). hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下.hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名.在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决.通过可以将常用的域名和ip地址映射加入到hosts文件中

详解Spring配置事务的五种方式_java

Spring配置文件中关于事务配置总是由三个组成部分,分别是 DataSource .TransactionManager  和 代理机制 这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSource.TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager. 具

图文详解phpstorm配置Xdebug进行调试PHP教程_php技巧

phpstorm配置Xdebug进行调试PHP教程分享给大家,具体内容如下 运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdebug版本一定要相对应 1. PHP安装xdebug扩展 php.ini的配置,下面的配置仅供参考,路径要换成自己的! [xdebug] zend_extension="D:\wamp\php-5.6.2-x64\ext\ph

apache .htaccess文件详解和配置技巧总结_Linux

一..htaccess的基本作用        .htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令.       .htaccess主要的作用有:URL重写.自定义错误页面.MIME类型配置以及访问权限控制等.主要体现在伪静态的应用.图片防盗链.自定义404错误页面.阻止/允许特定IP/IP段.目录浏览与主页.禁止访问指定文件类型.文件密码保护等.       .htaccess的用途范围主要针对当前目录. 二.启用.htaccess的配置启用.htaccess,需

IOS 图文混排(CoreText.framework)详解及实例_IOS

IOS 图文混排(CoreText.framework)        本文主要介绍了IOS图文混排的资料,这里整理了在网上查找的内容,帮助理解,掌握这部分知识,以下就是整理的内容:    利用CORETEXT进行图文混排. 实现代码: void RunDelegateDeallocCallback( void* refCon ){ } CGFloat RunDelegateGetAscentCallback( void *refCon ){ NSString *imageName = (NSS

详解Spring事务Transaction配置的五种注入方式

前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSource.TransactionManager这两部分只是会根据数据访问方式有所变化,

linux下配置yum源方法详解_Linux

本人使用的方法一,成功配置,方法二没测过,可以作为参考 方法一: 1.确保RHEL5中已经安装了yum [root@lvs-master ~]# rpm -qa |grep yum yum-metadata-parser-2-el5 yum-updatesd-9-el5 yum-22-el5 yum-security-16-el5 yum-rhn-plugin-4-el5 2.修改源配置文件 #vim /etc/yum.repos.d/CentOS-Base.repo (如果目录下没有.repo