主题 : 裸机运行在什么模式下,用户模式还是超级模式 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 100496
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2014-02-13
最后登录: 2017-09-13
楼主  发表于: 2014-02-18 14:55

 裸机运行在什么模式下,用户模式还是超级模式

c程序里面怎么查看 在什么模式下
级别: 新手上路
UID: 100496
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2014-02-13
最后登录: 2017-09-13
1楼  发表于: 2014-02-18 22:17
在 13.uart_stdio 在start.s末端增加这个函数

.global ReadCPUSR
ReadCPUSR:
    MRS     R0, CPSR                //; Set IRQ and FIQ bits in CPSR to disable all interrupts
    MOV     PC, LR


mian.c 中
    int a = 0;
    int b = 0;
    int sr;
    char *str = "hello world";

    uart_init();

    sr=ReadCPUSR();
    printf("%s 0x%x\r\n",str,sr);

输出为 :hello world 0x600001d3
可以得出 superboot运行裸机程序时候 是在 管理模式下
级别: 新手上路
UID: 100496
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2014-02-13
最后登录: 2017-09-13
2楼  发表于: 2014-02-18 22:18
我在玩单机游戏吗?