社区
嵌入开发(WinCE)
帖子详情
请chinesedragon2010朋友进来领分
zengwujun
2010-09-16 02:29:23
非常感谢你wince sd升级的代码,可能也会有一些问题需要请教你,谢谢(第一次做wince)。
zwj123◎163.com。
...全文
162
10
打赏
收藏
请chinesedragon2010朋友进来领分
非常感谢你wince sd升级的代码,可能也会有一些问题需要请教你,谢谢(第一次做wince)。 zwj123◎163.com。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chinesedragon2010
2010-09-17
打赏
举报
回复
怎么解决的啊?可以麻烦楼主分享一下吗?我也想学习一下!谢谢啊
zengwujun
2010-09-17
打赏
举报
回复
问题解了,初始化没有问题。
jw212
2010-09-17
打赏
举报
回复
大家互相交流,共同学习!
IT铁哥
2010-09-16
打赏
举报
回复
看到这样的贴我有点感动.
CSDN上热心的人还是很多的.
chinesedragon2010
2010-09-16
打赏
举报
回复
对zengwujun说声抱歉,我上面提到的想法的第3点说的太直了,忘见谅,我只是觉得自己在这个问题上给你提供的帮助有限,感觉受之有愧,假如有其他朋友能给你很好的建议和帮助,你可以把这100分给他们,祝很快移植成功啊!
chinesedragon2010
2010-09-16
打赏
举报
回复
我有几个想法:
1.我已把WINCE6.0+2443系统的基于SD卡的更新的eboot已发给你了,我建议你如果时间允许,你可以先学习
学习这个eboot,搞懂了再移植到你的WINCE6.0+6410上面,不过,我现在还不知道2443和6410的SD控制器的差别有多大,移植的工作量和难点主要是在eboot中的sd.c文件中。
2.我发给你的那个WINCE6.0+6410的SD卡更新的bootloader是三星原厂的BSP包中的,我还没有验证过是否可行,但我现在发现好像不是SD更新的。
3.只要其他朋友能给你很好的建议和帮助,我希望你给予他们应有的分数表示他们对你的帮助,其实我在这个问题上并没有给你很大的帮助,主要是靠你看懂然后去移植,当然了,在移植过程中,欢迎交流,我也有很多不懂的,互相学习。
chinesedragon2010
2010-09-16
打赏
举报
回复
好啊,你都开始用6410了,我还没有真正开始学习6410呢?你那里没有wince 6410的BSP包吗?
zengwujun
2010-09-16
打赏
举报
回复
int hsmmc_init (void)
{
u32 reg;
uint width;
width = 4;
EdbgOutputDebugString("[HSMMC]++hsmmc_init");
pCLKPWR = (S3C6410_SYSCON_REG*)OALPAtoVA(S3C6410_BASE_REG_PA_SYSCON, FALSE);
pGPIOReg = (S3C6410_GPIO_REG*)OALPAtoVA(S3C6410_BASE_REG_PA_GPIO, FALSE);
pHSMMC = (S3C6410_HSMMC_REG*)OALPAtoVA(S3C6410_BASE_REG_PA_HSMMC0, FALSE);
//reset
pHSMMC->SWRST = 0x3;
//InitClkPwr
pCLKPWR->OTHERS |= (0x1<<16); // set USB_SIG_MASK
pCLKPWR->HCLK_GATE |= (0x1<<17); // Gating HCLK for HSMMC1
pCLKPWR->SCLK_GATE |= (0x1<<27); // Gating special clock for HSMMC1 (SCLK_MMC1_48)
//InitGPIO
pGPIOReg->GPGCON = (pGPIOReg->GPGCON & ~(0xFFFFFF)) | (0x222222); // 4'b0010 for the MMC 0
pGPIOReg->GPGPUD &= ~(0xFFF); // Pull-up/down disabled
//InitHSMMC
pHSMMC->CONTROL2 = (pHSMMC->CONTROL2 & ~(0xffffffff)) |
(0x3<<9) | // Debounce Filter Count 0x3=64 iSDCLK
(0x1<<8) | // SDCLK Hold Enable
(0x3<<4); // Base Clock Source = External Clock
hsmmc_clock_onoff(0);
set_clock(SD_EPLL, 0x80);
pHSMMC->TIMEOUTCON = 0xe;
set_hostctl_speed(NORMAL);
InterruptEnable(0xff, 0xff);
dbg("HM_NORINTSTS = %x\n", pHSMMC->NORINTSTS);
/* MMC_GO_IDLE_STATE */
issue_command(MMC_GO_IDLE_STATE, 0x00, 0, 0);
ocr_check = 1;
if (set_mmc_ocr()) {
mmc_card = 1;
dbg("MMC card is detected\n");
} else if (set_sd_ocr()) {
mmc_card = 0;
dbg("SD card is detected\n");
} else {
EdbgOutputDebugString("0 MB\n");
return 0;
}
ocr_check = 0;
/* Check the attached card and place the card
* in the IDENT state rHM_RSPREG0
*/
issue_command(MMC_ALL_SEND_CID, 0, 0, MMC_RSP_R2);
/* Manufacturer ID */
card_mid = (pHSMMC->RSPREG3 >> 16) & 0xFF;
dbg("Product Name, RSPREG2:%X,RSPREG1:%X\n", pHSMMC->RSPREG2, pHSMMC->RSPREG1);
// Send RCA(Relative Card Address). It places the card in the STBY state
rca = (mmc_card) ? 0x0001 : 0x0000;
issue_command(MMC_SET_RELATIVE_ADDR, rca<<16, 0, MMC_RSP_R1);
if (!mmc_card)
rca = (pHSMMC->RSPREG0 >> 16) & 0xFFFF;
dbg("Enter to the Stand-by State\n");
issue_command(MMC_SEND_CSD, rca<<16, 0, MMC_RSP_R2);
if (mmc_card) {
mmc_spec = (pHSMMC->RSPREG3 >> 18) & 0xF;
dbg("mmc_spec=%d\n", mmc_spec);
}
issue_command(MMC_SELECT_CARD, rca<<16, 0, MMC_RSP_R1);
dbg("Enter to the Transfer State\n");
display_card_info();
/* Operating Clock setting */
clock_config(SD_EPLL, 2); // Divisor 1 = Base clk /2 ,Divisor 2 = Base clk /4, Divisor 4 = Base clk /8 ...
while (set_bus_width(width));
while (!check_card_status());
/* MMC_SET_BLOCKLEN */
while (!issue_command(MMC_SET_BLOCKLEN, 512, 0, MMC_RSP_R1));
pHSMMC->NORINTSTS = 0xffff;
EdbgOutputDebugString("[HSMMC]--hsmmc_init");
return 0;
}
初始化有问题吗,我是从linux挪过来的。
zengwujun
2010-09-16
打赏
举报
回复
是的,加我QQ:23607128
chinesedragon2010
2010-09-16
打赏
举报
回复
^_^,你的系统现在可以使用SD卡来更新了吗?还存在什么问题啊?欢迎交流!
WINCE6.0+S3C2443的启动过程---eboot2
上接:http://blog.csdn.net/
chi
nes
e
drag
on2010
/ar
chi
ve/2010/09/20/5895956.aspx1.2 关闭所有的CPU中断通过对INTMSK,INTSUBMSK寄存器特定为设置为1来屏蔽中断源的中断
请
求,接着通过对中断模式寄存器INTMOD清零来把中断设置为IRQ模式。1.3系统时钟设置我的另一篇博客介绍了S3C2443的时钟管理http://blog.csdn.net/
chi
nes
e
drag
on2010
/ar
chi
ve/2010/09/24/590355
WINCE6.0+S3C2443的启动过程---eboot4
http://blog.csdn.net/
chi
nes
e
drag
on2010
/ar
chi
ve/2010/10/05/5922489.aspx
2 main函数
void main(void)
{
//MemoryTest_Function();
BootloaderMain();
// Should never get here.
SpinForever();
}
WINCE下实现USB转RS232
作者:
chi
nes
e
drag
on2010
转自:http://blog.csdn.net/
chi
nes
e
drag
on2010
/article/details/5877114 WINCE下可以通过一个USB TO RS232转换器来实现USB转RS232,也即WINCE设备的USB host接USB TO RS232转换器的USB端,而USB TO RS232转换器的RS232端可以
WINCE6.0+S3C2443的启动过程---eboot3
上接http://blog.csdn.net/
chi
nes
e
drag
on2010
/ar
chi
ve/2010/10/03/5919717.aspx
1.6
OEMAddresstable只是用来初始化一级页表,就是所谓的段(section)描述,每个段是1MB,分为4096个段,总共4G——虚拟内存空间4G就是由此而来。
并且这个OEMAddresstable可以用在查表法中用来转换虚拟地址、物理地址(相互转换都可以)。
PTs(p
决定换个ID在CSDN中与时俱进
大家好,决定换一个ID在CSDN中参与学习和讨论,所以
chi
nes
e
drag
on2010
这个ID暂时决定不使用,新的ID是LoongEmbedded
http://hi.csdn.net/space.php?do=home,谢谢大家的关注。
嵌入开发(WinCE)
19,519
社区成员
41,565
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章