纯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