嵌入式爱好者

查看: 3396|回复: 4

驱动映射地址问题

[复制链接]

7

主题

11

帖子

22

积分

扫一扫,手机访问本帖
发表于 2013-3-1 21:27:22 | 显示全部楼层 |阅读模式
在TE2440开发板中写一个简单的驱动,在Init函数中将物理地址起始地址为0x1000_0000的32个地址映射为虚拟地址。将驱动编译完成后生NK.BIN文件,将NK.bin文件烧到开发板中。系统崩溃,断电重启后bootloader也不能启动。请问是什么原因。程序代码为
#define FPGA_BASE_REG             (0x10000000)
static volatile FPGA_MEM_REG *v_pIOPregs;
typedef struct {
        UINT32 ulAddr[32];                  // Port A - offset 0       

} FPGA_MEM_REG, *PFPGA_MEM_REG;  

DWORD FPG_Init(DWORD dwContext)
{
v_pIOPregs = (volatile FPGA_MEM_REG *)VirtualAlloc(0, sizeof(FPGA_MEM_REG), MEM_RESERVE, PAGE_NOACCESS);
        if (v_pIOPregs == NULL)
        {
                DEBUGMSG (1,(TEXT("v_pIOPRegs is not allocated\n\r")));
                isSuccess = 0;
                //return TRUE;
        }
        else
        {
                if (!VirtualCopy((PVOID)v_pIOPregs, (PVOID)(FPGA_BASE_REG>>8), sizeof(FPGA_MEM_REG), PAGE_PHYSICAL|PAGE_READWRITE|PAGE_NOCACHE))
                {
                                isSuccess=0;
                                DEBUGMSG (1,(TEXT("v_pIOPRegs is not mapped\n\r")));
                }
               
                //return TRUE;
        }
        if(!isSuccess)
        {
                if(v_pIOPregs)
                {
                        VirtualFree((PVOID)v_pIOPregs,0,MEM_RELEASE);
                }
                v_pIOPregs=NULL;
        }
        RETAILMSG(1, (TEXT("::: FPG_InitS.\r\n")));

        return isSuccess;   
}
将映射部分注释掉后重新编译生成的NK.bin文件烧写后不影响bootloader。
回复

使用道具 举报

110

主题

1358

帖子

1443

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证i.MX8MP通行证RK3568通行证RK3588通行证RK3399通行证LS1028A通行证G2L通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证FCU3001通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证AM62x资料下载FDU070K02\FDU101K02通行证i.MX9352通行证

发表于 2013-3-2 10:03:04 | 显示全部楼层
不都是将虚拟地址映射为物理地吗?
该会员没有填写今日想说内容.
点评回复 支持 反对

使用道具 举报

7

主题

11

帖子

22

积分

 楼主| 发表于 2013-3-3 10:55:20 | 显示全部楼层
我用的是nGCS2片选,在驱动里面访问nGCS2的地址(0x10000000)怎么实现?
点评回复 支持 反对

使用道具 举报

7

主题

11

帖子

22

积分

 楼主| 发表于 2013-3-4 23:37:53 | 显示全部楼层
这部分程序有错误吗?谢谢!
点评回复 支持 反对

使用道具 举报

7

主题

11

帖子

22

积分

 楼主| 发表于 2013-3-5 22:39:57 | 显示全部楼层
怎么没有理了呀。谢谢!
点评回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-12-23 16:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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