纯python arm处理器模拟器

armulator的Python项目详细描述



纯python arm模拟器

开始

先决条件

唯一需要的包是“bitstring”。
要运行测试,需要“pytest”。

```
PIP安装位串
pip安装pytest
```

安装

安装“扶手架”非常简单。你需要做的就是:

```
PIP安装支架
```

用法

要创建处理器对象,需要先导入它:
```
来自armulator.arm v6.arm_v6导入armv6
```

然后您可以创建它:

```
臂=ARMV6()
```
要真正使用处理器,必须熟悉内存控制器的概念。
这一概念的主要思想是,有一个“集线器”,您可以连接多个控制器。
一个“内存控制器”可以是一个内存棒、内存映射LCD屏幕或任何你想要的东西。

例如,让我们创建一个RAM控制器:

```
从armulator.armv6.memory_type导入RAM
来自armulator.armv6.memory_controller_hub import memory controller
内存=内存(0x100)
mc=内存控制器(mem,0xf000000,0xf0001000)
arm.mem.memories.append(mc)
```

现在,任何试图访问0xf000000到0xf0001000之间的内存的尝试都将访问“mem”对象。
您还可以手动更改内存:

```
内存写入(0,2,“\xfe\xe7”)
```

另一个有用的功能是使用内存保护或管理单元,
例如,取消内存保护看起来像:
```
arm.registers.sctlr.set_m(错误)
手臂复位()
```
请注意,更改内部功能后,建议重新设置处理器。

运行armulator时,可能需要从定义的地址开始,因此:
```
从位字符串导入位数组
arm.registers.branch_to(位数组(uint=0x100,length=32))
```

我们需要做的最后一件事是真正运行处理器,它可以使用:
```
arm.emulate_cycle()
```


运行测试

使用pytest可以轻松地运行测试:

```
python-m pytest测试-vv
```

不久将添加更多测试。



*[位字符串](http://scott-griffiths.github.io/bitstring/)-用于位操作

作者

**matan perelman**-[matan1008](https://github.com/matan1008)

许可证

此项目是根据麻省理工学院许可证授权的-有关详细信息,请参阅[license.md](license.md)文件

致谢

*起初,我这样做是为了更好地学习ARM体系结构我想我是被迷住了。
*请随时报告错误。
*请随意要求更多功能。

关键词:arm模拟器
平台:未知
分类器:开发状态::3-alpha
分类器:编程语言::Python::2
分类器:编程语言::Python::2.7

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式