搜索

5

主题

14

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2017-10-15 16:33:13 17252 浏览 2 回复

关于裸机和uboot的两个疑问

1.我看到start.S中最后把MMU打开了,但是在进行裸机开发LED程序的时候,为什么烧写地址仍然使用的是物理地址0x40008000?不应该是虚拟地址吗?


2.调试过程中,为什么我访问GPIO的物理地址竟然可以?比如LED的物理地址...
回复

使用道具 举报

48

主题

604

帖子

1923

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1923
发表于 2017-10-16 10:32:30
1 在整个操作系统启动之前,必须使用物理地址操作mcu
在操作系统启动之后,必须使用虚拟地址。
uboot最开始的点灯,没有进行虚拟化操作,没有进行内存映射,意思就是,内存都没启动。所以,不能使用虚拟地址,只能像单片机一样使用物理地址。

2 在驱动中,你调用的led,操作系统已经启动,而且调用的是内核提供的函数,这些函数都是对虚拟地址进行操作的。
回复 点赞

使用道具 举报

5

主题

14

帖子

92

积分

注册会员

Rank: 2

积分
92
 楼主| 发表于 2017-10-19 10:24:03
已经解决,谢谢
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

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