主题 : 关于nbootRAM128的物理地址和虚拟地址映射问题 复制链接 | 浏览器收藏 | 打印
刚购买了Mini6410
级别: 新手上路
UID: 33544
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2010-12-02
最后登录: 2010-12-17
楼主  发表于: 2010-12-14 09:55

 关于nbootRAM128的物理地址和虚拟地址映射问题

劳驾各位高手:

我是新手,刚看Mini6410的nbootRAM128代码,有一段是
void main()
{
    unsigned NkParamMagic, NkLen;
    Uart_Init();
.......
}

而Uart_Init中的语句:
  rGPACON = (rGPACON & ~(0xff<<0)) | (0x22<<0);    // GPA0->RXD0, GPA1->TXD0
    rGPAPUD = (rGPAPUD & ~(0xf<<0)) | (0x1<<0);        // RXD0: Pull-down, TXD0: pull up/down disable

#define GPIO_BASE    (0x7F008000)
#define rGPACON        (*(volatile unsigned *)(GPIO_BASE+0x00))

rGPACON 这个只是一个物理地址,在User Manual中有的,应该这里需要转换为虚拟地址才能操作GPIO啊?

请问物理地址转换虚拟地址在哪里做了(类似OALPAtoVA)?????
刚购买了Mini6410
级别: 新手上路
UID: 33544
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2010-12-02
最后登录: 2010-12-17
1楼  发表于: 2010-12-14 16:25
友善之臂的工程师们,帮我解决这个问题啊
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2010-12-14 16:56
nboot代码很简单,用不到虚拟地址,这里使用的是实地址。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
刚购买了Mini6410
级别: 新手上路
UID: 33544
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2010-12-02
最后登录: 2010-12-17
3楼  发表于: 2010-12-17 09:52
1、如果不用虚拟地址,而直接使用物理地址,能帮忙详细解释下直接操作GPIO的流程吗?就是说,比如物理地址0x7F008000,就是说我的操作指针是0x7F008000,CPU是怎么知道0x7F008000地址就能对应到某一个GPIO上?这其中都是些什么过程,还请高手指点,不尽感激!!!

2、另外在eboot的代码中用到OALPVtoVA函数(物理地址转换虚拟地址),为什么Nboot不需要转换,而Eboot就需要转换???
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
4楼  发表于: 2010-12-17 10:36
我们不对程序原理提供解释服务,请自行理解。
另外,我们的烧写方式和eboot是不同的,具体的请参考u-boot的源代码,它可以支持wince的烧写。
eboot可能适合以传统方式,纯粹做wince开发的人,但作为开发板平台,我们要考虑各个操作系统都可以简单下载和烧写。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
刚购买了Mini6410
级别: 新手上路
UID: 33544
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2010-12-02
最后登录: 2010-12-17
5楼  发表于: 2010-12-17 13:01
作为学习开发板供应商,你们不仅仅是简单的盈利,也是肩负知识的传授啊,既然是学习开发板,你们的初衷不就是要大家都来学习吗?我们为什么要买你们的开发板,而不选择其他供应商,也是因为你们的服务,所以希望友善的工程师们能解答板子们的一些疑问,谢谢
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
6楼  发表于: 2010-12-17 13:41
对于程序员来讲,代码本身就是最好的诠释。
我们已经明确说明: 不提供原理解释支持,因为那是没有尽头的
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
刚购买了Mini6410
级别: 新手上路
UID: 33544
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2010-12-02
最后登录: 2010-12-17
7楼  发表于: 2010-12-17 16:04
代码面前程序是赤裸裸的,但查遍代码也找不到CPU是怎么知道一个指针地址就是对应某个GPIO,望路过的高手帮忙解决我的疑问,不尽感激!!!!