MMU相关的CP15寄存器:
0:ID 编码&cache 类型(只读)
1:控制位
2:地址转换表基地址(TTB)
3:域访问控制位
5:失效状态寄存器(FSR)
6:失效地址寄存器(FAR)
外设寄存器:
中断控制器寄存器(0x4001f040)
(0x0)MSK:中断屏蔽寄存器(置1有效)
(0x4)PND:中断状态寄存器(硬件置位、软件清零)
定时器寄存器(0x4001f020)
(0x0)CNT: 计数值寄存器(只读,单位毫秒)
(0x4)EN:定时器使能寄存器
兼容8250 的串口寄存器(0x40020000)
(0x0)DLL, THR, RBR:传输保持&接收缓存寄存器
(0x4)DLH, IER:中断使能寄存器
(0x8)IIR, FCR:中断指示(读)&FIFO控制寄存器(写)
(0xC)LCR:线路控制寄存器
....
指令计数器(0x4001f030)
(0x0)CC:读取已执行的指令数,调试用(32bit)
中断:
0:10ms定时器
1:串口
移植了keil&gcc裸机、freeRTOS、linux 5.1 内核的工程,文件系统用的buildroot,基于initramfs,可以登录进串口终端。
CPU信息:
模拟器涉及的平台相关函数:
地址:
项目地址: https://github.com/hxdyxd/arm_emulator
Linux内核地址:https://github.com/hxdyxd/arm-emulator-linux
0:ID 编码&cache 类型(只读)
1:控制位
2:地址转换表基地址(TTB)
3:域访问控制位
5:失效状态寄存器(FSR)
6:失效地址寄存器(FAR)
外设寄存器:
中断控制器寄存器(0x4001f040)
(0x0)MSK:中断屏蔽寄存器(置1有效)
(0x4)PND:中断状态寄存器(硬件置位、软件清零)
定时器寄存器(0x4001f020)
(0x0)CNT: 计数值寄存器(只读,单位毫秒)
(0x4)EN:定时器使能寄存器
兼容8250 的串口寄存器(0x40020000)
(0x0)DLL, THR, RBR:传输保持&接收缓存寄存器
(0x4)DLH, IER:中断使能寄存器
(0x8)IIR, FCR:中断指示(读)&FIFO控制寄存器(写)
(0xC)LCR:线路控制寄存器
....
指令计数器(0x4001f030)
(0x0)CC:读取已执行的指令数,调试用(32bit)
中断:
0:10ms定时器
1:串口
移植了keil&gcc裸机、freeRTOS、linux 5.1 内核的工程,文件系统用的buildroot,基于initramfs,可以登录进串口终端。
CPU信息:
[root@armemulator ~]# cat /proc/cpuinfo
processor : 0
model name : ARM920T rev 5 (v4l)
BogoMIPS : 20.24
Features : swp half
CPU implementer : 0x41
CPU architecture: 4T
CPU variant : 0x0
CPU part : 0x920
CPU revision : 5
Hardware : ARM Emulator (Device Tree Support)
Revision : 0000
Serial : 0000000000000000
模拟器涉及的平台相关函数:
IO:
#define KBHIT() kbhit()
#define KBHIT() kbhit()
#define GETCH() getch()
#define PUTCHAR(c) putchar(c)
时钟:
#define GET_TICK() (clock()*1000/CLOCKS_PER_SEC)
#define GET_TICK() (clock()*1000/CLOCKS_PER_SEC)
地址:
项目地址: https://github.com/hxdyxd/arm_emulator
Linux内核地址:https://github.com/hxdyxd/arm-emulator-linux
没有评论:
发表评论