完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
本帖最后由 一只耳朵怪 于 2018-6-4 16:07 编辑
各位好: 在我的板中,GPMC用来控制三种外设存储设备。cs0为nand flash,cs1为cpld,cs2为dsp(cx64x00)。地址空间划分为: cs0:0x01000000~0x01FFFFFF(16M) cs1:0x50000000~0x05FFFFFF(16M) cs2:0x08000000~0x08FFFFFF(16M) 在3.14内核中,初始化nand flash时,GPMC控制寄存器地址(0x50000000)地址被映射成0xf0110000,即我写GPMC控制寄存器的时候都要写入基地址为0xf0110000 DSP的地址空间(0x08000000)被映射成0xf3000000,操作DSP的HPI接口时,都要往0xf3000000地址操作。 请问内核可以设置成不需要地址映射的吗? |
|
相关推荐
5个回答
|
|
|
这是和Linux的内存管理有关吧,所有驱动层操作的地址都是虚拟地址。
|
|
|
|
|
|
还有就是安全机制的问题,系统不允许直接访问物理地址 当然习惯了就好了,慢慢适应吧 不要妄想改变什么,哈哈 |
|
|
|
|
|
GPMC的地址0x00000000~0x1FFFFFFF这个512M的地址本来就是从物理内存映射过来的虚拟地址,然后在这512M的空间内分地址块,这些地址块的的地址又被映射到0xF0114000开始的地址去了。 另外GPMC控制寄存器的地址0x50000000也被映射到0xf0110000的地址了。 |
|
|
|
|
|
被映射的虚拟地址再次映射,但是cpsw的寄存器的地址就没有被映射,datasheet里面定义的是多少就是多少。 |
|
|
|
|
|
1. 如果使能了***,地址才能被访问,这个是arm的机制决定的,ARM是虚拟MMU。 2. Linux中的MMU页表比较复杂,建议google或者百度。 3. CPSW也是被映射了,不过是0 offset的映射 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 04:19 , Processed in 0.981503 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2353