我想模拟ARM代码。例如,我想运行如下代码:
MOV R0, #5
ADD R0, R0, #1
//somehow output R0
它将在我的Ubuntu上的某些软件上输出6。是否可以?
最佳答案
Keil MDK可用于模拟ARM代码。它提供了Simulate/Debug透视图,可用于探查ARM寄存器集,内存内容等。
免费提供MDK-Lite评估版,最大代码大小为32KB。
Linux版本的MDK不可用。但是Keil MDK在Ubuntu中的WINE上可以完美地工作。
在WINE上安装Keil uVision MDK:
步骤1:在Ubuntu上安装wine
打开一个终端并输入:
sudo apt-get install wine
步骤2:下载Keil MDK。
步骤3:安装MDK
右键单击MDK可执行文件,然后选择“使用Wine Windows程序加载程序打开”选项。
步骤4:在Ubuntu上调用Keil uVision MDK
打开一个终端并输入:
wine ~/.wine/drive_c/Keil/UV4/Uv4.exe
步骤5:安装Flash Magic(可选)
Flash Magic是用于下载Keil板软件的工具。下载Flash Magic Software并将其安装在wine上(请参阅前面的步骤)。
创建一个COM1链接到串行端口。打开一个终端并输入:
ln -s /dev/ttyS0 ~/.wine/dosdevices/COM1
Keil uVision MDK项目创建和调试:
步骤1:为ARM7目标创建一个Keil UVision项目。
在Keil UVision工具栏中,选择项目->新建项目。
导航到您要创建此项目的位置。
输入项目名称,然后单击“保存”。
选择ARM-> ARM7(Little Endian)作为Target的设备。单击确定。
步骤2:为目标创建一个程序集源文件
在Keil UVision工具栏中,选择File-> New。将以下代码添加到新创建的文件中:
AREA text, code, readonly
ENTRY
MOV R0, #5
ADD R0, R0, #1
END
如上所述,在每个汇编语句之前提供制表符空间。用“.s”扩展名保存文件。
步骤3:将源文件添加到项目
在“项目”窗口(位于UVision的左侧)中,右键单击“源组1”,然后选择“将文件添加到组源组1”选项。
选择test.s,然后单击“添加”。 (选择文件类型作为ASM源文件)
步骤4:构建源文件
在Keil UVision工具栏中,选择项目->构建目标或按F7编译源文件。
步骤5:模拟/调试应用程序
在Keil UVision工具栏中,选择Debug-> Start/Stop Debug Session或按Ctrl + F5。
调试透视图打开,左侧为Register View ,中间为Code View ,右下方为Memory View ,等等。
使用调试键执行代码:
在程序执行结束时观察寄存器 View :
在Keil UVision工具栏中,选择Debug-> Start/Stop Debug Session或按Ctrl + F5退出Debugging Perspective。
关于c - 模拟ARM代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14539787/