4.2升级到5.0的BSP,中断问题

[复制链接]
查看11 | 回复10 | 2021-1-27 06:48:02 | 显示全部楼层 |阅读模式
小弟目前尝试在做BSP的移植,使用了wince5.0的内核,和从4.2升级而来的bsp,我想把5.0PUBLIC目录下的SD卡驱动移植过来,可是始终不成功,有以下几点疑惑:
(1)看帖理解是中断的问题导致SDHC_SC2410.DLL无法加载,5.0的是动态中断映射,使用KernelIoControl实现物理中断和系统中断的映射,4.2的是静态的,直接在OEMInterruptHandler中采用ifelse搞定,那么如果要把5.0中的SD驱动移植到4.2BSP下,是否需要删除KernelIoControl等语句,而armint.c中是否又需要添加静态映射的代码?
(2)目前很郁闷的是:不能在SD驱动的相关代码中通过RETAILMSG输出任何调试信息,但是我试过在armint.c中用RETAILMSG就可以串口输出的,是不是因为一个在PUBLIC文件夹下就不支持,而另一个在PLATFORM文件夹下就可以呢?那么应该怎么修改呢?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
RETAILMSG在PUBLIC下一样可以使用
是不是因为一个在PUBLIC文件夹下就不支持,而另一个在PLATFORM文件夹下就可以呢?
你的意思是PUBLIC下和PLATFORM有同样的驱动?那肯定是PLATFORM中的覆盖掉了PUBLIC下的
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
引用1楼veabol的回复:RETAILMSG在PUBLIC下一样可以使用
是不是因为一个在PUBLIC文件夹下就不支持,而另一个在PLATFORM文件夹下就可以呢?
你的意思是PUBLIC下和PLATFORM有同样的驱动?那肯定是PLATFORM中的覆盖掉了PUBLIC下的

不是这个意思,我是说我加在C:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\SDHC\SDHCBase下的sdhcmain.cpp中的RETAILMSG不起作用,但是在C:\WINCE500\PLATFORM\smdk2410\KERNEL\HAL\ARM\armint.c中的RETAILMSG就起作用,是不是因为PUBLIC不支持,还是由于没有编译进去?

回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
今天又试了下,sdhcmain.cpp中的RETAILMSG可以输出了,大概是编译的问题,先clean后build了sdhc工程,然后又点击了右键菜单的第二项BuildandSysgenCurrentProject,最后点了BuildOS->Sysgen,这样就行了。现在的问题是,是不是其中有步骤是多余的?
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
改动PUBLIC中的代码后要BuildandSysgen的
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
这样做代价很大,我做过4.2到真的5.0的驱动一些移植,必须把中断换成5.0的ISR不然搞不成的。这样难度最低。
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
支持PQOAL格式的BSP是通过KernelIoControl动态映射中断的
if(!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,&m_dwSDIOIrq,sizeof(DWORD),&m_dwSDIOSysIntr,sizeof(DWORD),NULL))
如果用4.2升级后的5.0bsp直接
m_dwSDIOSysIntr=SYSINTR_SDMMC;
即可
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
引用5楼gooogleman的回复:这样做代价很大,我做过4.2到真的5.0的驱动一些移植,必须把中断换成5.0的ISR不然搞不成的。这样难度最低。
这一阵子总是有别的事情要忙,现在终于有点空了。
“必须把中断换成5.0的ISR” 是不是说放弃整个4.2的BSP构架,而采用5.0的那种文件夹格式,那样的话是不是必须移植每一个驱动?
是不是可以保留4.2的bsp架构,仅仅移植5.0的中断部分到4.2的bsp中去?
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
引用7楼autolu的回复:引用5楼gooogleman的回复:
这样做代价很大,我做过4.2到真的5.0的驱动一些移植,必须把中断换成5.0的ISR不然搞不成的。这样难度最低。

这一阵子总是有别的事情要忙,现在终于有点空了。
“必须把中断换成5.0的ISR” 是不是说放弃整个4.2的BSP构架,而采用5.0的那种文件夹格式,那样的话是不是必须移植每一个驱动?
是不是可以保留4.2的bsp架构,仅仅移植5.0的中断部分到4.2的bsp中去?

这样和没有改动没有区别,我曾经试图改动,后来我换个5.0BSP来改动不用几天就搞好了。呵呵
回复

使用道具 举报

千问 | 2021-1-27 06:48:02 | 显示全部楼层
gooogleman,"换个5.0BSP来改动"是不是说在5。0的bsp基础上添加原来的4。2驱动,同时修改驱动中的中断啊?
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行