天嵌 ARM开发社区

 找回密码
 注册
查看: 1786|回复: 8

问个裸奔的问题。。

[复制链接]
WTW11897 发表于 2011-4-22 11:10:03 | 显示全部楼层 |阅读模式
疑惑了好几天。看了天嵌的启动代码,在main里面有如下部分
        Beep(2000, 100);
        
        Uart_SendByte('\n');
        Uart_Printf("<***************************************>\n");
        Uart_Printf("               TQ2440 Test Program\n");
        Uart_Printf("                www.embedsky.net\n");
//        Uart_Printf("      Build time is: %s  %s\n", __DATE__ , __TIME__  );
        Uart_Printf("<***************************************>\n");

        rMISCCR=rMISCCR&~(1<<3); // USBD is selected instead of USBH1
        rMISCCR=rMISCCR&~(1<<13); // USB port 1 is enabled.


        rDSC0 = 0x2aa;
        rDSC1 = 0x2aaaaaaa;
        //Enable NAND, USBD, PWM TImer, UART0,1 and GPIO clock,
        //the others must be enabled in OS!!!
        rCLKCON = 0xfffff0;

        MMU_Init();        //
可以看到,第一句是使蜂鸣器响一下,然后最后一句是初始化MMU。
然后看了下ucOS-II里面的启动,在系统启动后创建了一个任务,是每秒响一下蜂鸣器。
但是看了下这个任务的源码,发现和启动代码里响一下蜂鸣器的代码是一样的。(我的意思是这两个地方驱动蜂鸣器的时候都是同一个地址,就是GPB)。

我不明白的是启动MMU之后和没有启动MMU之前,这个地址不会改变么?
MMU不是做虚拟地址到物理地址的转换么?系统启动完毕后MMU肯定是启动了的。
可是怎么写地址的时候还是没有启动MMU之前的地址呢?

在S3C2440手册里面的所有系统映射地址的操作,在系统启动前和系统启动后如果想对这个地址操作的话,方法是一样的么?(即不管什么时候都还是读取手册里面规定的地址)

还有,系统启动成功后,在程序里面对某个地址的读取和写入,是直接操作的物理地址么?
还是什么。

问题有点多~~~~  大家不要见怪啊。
 楼主| WTW11897 发表于 2011-4-22 12:48:49 | 显示全部楼层
是我的问题太弱了么~~
回复

使用道具 举报

 楼主| WTW11897 发表于 2011-4-22 19:05:48 | 显示全部楼层
我以为有人回帖了。。。。
帮帮忙啊
回复

使用道具 举报

 楼主| WTW11897 发表于 2011-4-24 11:26:53 | 显示全部楼层
没人吗? 让人失望啊~~
回复

使用道具 举报

 楼主| WTW11897 发表于 2011-4-24 22:00:05 | 显示全部楼层
自己继续顶~
回复

使用道具 举报

shufexiu 发表于 2011-4-25 20:20:59 | 显示全部楼层
1# WTW11897


我不明白的是启动MMU之后和没有启动MMU之前,这个地址不会改变么?
MMU不是做虚拟地址到物理地址的转换么?
系统启动完毕后MMU肯定是启动了的。可是怎么写地址的时候还是没有启动MMU之前的地址呢?

回答:这里是直接操作了物理地址了..................


在S3C2440手册里面的所有系统映射地址的操作,在系统启动前和系统启动后如果想对这个地址操作的话,方法是一样的么?(即不管什么时候都还是读取手册里面规定的地址)

回答:可以是直接访问物理地址,也可以根据系统映射的虚拟地址进行访问
回复

使用道具 举报

 楼主| WTW11897 发表于 2011-4-25 20:41:12 | 显示全部楼层
呃。 多谢回帖~~~
还是有点不明白,版主说这里是直接操作了物理地址,MMU启动后还能直接操作物理地址?
我记得MMU启动之后操作的不都是虚拟地址么?

还是这里的虚拟地址和物理地址是直接映射的? 是我理解错了么。。。。。

还有:可以是直接访问物理地址,也可以根据系统映射的虚拟地址进行访问
这里没理解。具体操作怎么实现的。。 指令不同么?

辛苦版主了。:hug:
回复

使用道具 举报

whm0204 发表于 2011-4-25 21:27:09 | 显示全部楼层
你看了MMU的内容吗?它把虚拟内存地址影射成跟物理地址一样,那不是跟操作物理地址一样吗。
回复

使用道具 举报

 楼主| WTW11897 发表于 2011-4-25 21:33:33 | 显示全部楼层
呃。。。 那就是直接映射了。
如果不是直接映射呢?
程序里面能直接写地址操作?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-18 09:13 , Processed in 2.073364 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表