9085|30

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE下通过SD卡来更新NK,这样的AP该怎么写啊?有没参考的例子?主要是在AP里面调不到BP_XXX那些函数,在AP里面怎么能够调到BP_XXX函数 [复制链接]

WINCE下通过SD卡来更新NK,这样的AP该怎么写啊?有没参考的例子?主要是在AP里面调不到BP_XXX那些函数,在AP里面怎么能够调到BP_XXX函数?

怎么对NAND FLASH进行块写入,块擦除什么的,我已经通过IOCONTROL宏实现了。就是不知道怎么产生什么MBR,怎么去调用什么
BP_XXX函数。

应该有人写过的。大家给点思路啊!

老是通过USB+串口来升级NK太麻烦了。再说这样还不能脱离一台PC机,这样太不方便了。
此帖出自WindowsCE论坛

最新回复

无法下载,我也在开始学习阿,郁闷  详情 回复 发表于 2010-5-14 10:24
点赞 关注
 

回复
举报

577

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 
这个明确的说,不能用AP来解决,要修改bootloader来加入这个功能。主要的技术有2个,一个是flash的操作,这个和USB升级是差不多的;另外一个就是SD卡的读操作,这涉及到SD卡的协议需要了解。
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 yashi 的回复:
这个明确的说,不能用AP来解决,要修改bootloader来加入这个功能。主要的技术有2个,一个是flash的操作,这个和USB升级是差不多的;另外一个就是SD卡的读操作,这涉及到SD卡的协议需要了解。

这个我正在看,有人早做出来了,估计也不难,慢慢琢磨
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
应该是有人做出来了.
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
在CE下和在bootloader下都可以实现更新NK.
1 在CE下
可以直接用文件系统API读出NK.bin,放到内存buffer中,在通过DEVICEIOCTL的方式来调用nand驱动的接一些接口来直接对nand flash进行写操作。
好处:跳过boot section,FAT/FAT32文件系统的解析;对内存大小无要求
缺点:NAND驱动需要暴露读写的IOCTL,必须进入OS才能更新OS,如果OS挂了的话,无法更新。

2 bootloader下
直接对SD CONTROLLER操作来对SD卡进行读写,解析FAT/FAT32格式,找到NK.BIN,并能将其读取到内存中,再假设NK.BIN如下载一般到内存中,将其烧写到nand flash中。
好处:只要bootloader不挂,就可以对OS进行更新;
缺点:需要自己解析BOOT SECION,FAT/FAT32文件系统;需要至少和NK.BIN大小相同的剩余RAM
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢,就是不知道自己来实现得多长时间。
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 xqhrs232 的回复:
谢谢,就是不知道自己来实现得多长时间。


你怎么不上MSN啊,我想请教你一些SD卡问题哦
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果想搞,我们一起搞吧。有个人可以交流一下,我看了一下SD卡协议,不是一般的复杂啊。
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
SD的协议很简单!
前面初始化的命令序列是固定的,比如刚开始要不断CMD0,然后CMD1,再发CMD55和ACMD41,再通过CMD7置成transfer mode之类的,接着就可以用读写的cmd的不断读写了。。。(以上顺序凭记忆的,具体要看SD手册,或者随便找个SD的初始化代码抄袭)

此帖出自WindowsCE论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

10
 
FAT解析有点小麻烦,不过也是固定的 格式,如果能找到一些样例的C代码的话,也不难。
目前支持SD更新的BSP还是有一些的。
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 songtitan 的回复:
SD的协议很简单!
前面初始化的命令序列是固定的,比如刚开始要不断CMD0,然后CMD1,再发CMD55和ACMD41,再通过CMD7置成transfer mode之类的,接着就可以用读写的cmd的不断读写了。。。(以上顺序凭记忆的,具体要看SD手册,或者随便找个SD的初始化代码抄袭)


//--------------也许是我第一次看。唉。
你是不是在读研究生啊,发现你经常泡在这里为我们解答啊。谢谢了。还是像我一样,公司不给我事情做,让我自由发挥?
此帖出自WindowsCE论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(中级)

12
 
重装了一下系统,MSN没装。
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

13
 
其实很简单,我们现在都有好多种升级模式
比如通过SD卡,或者通过USB;
在Bootloader里加入SD驱动,特别这样在无操作系统环境下的,更容易;然后加入对Fat16和Fat32文件系统的支持(这个源程序有很多,由于SD卡大小不同,所以要支持两个);然后开机检查SD卡指定目录下指定文件,发现存在,则自动升级了。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
楼上有没实现,在CE跑起来后,通过SD卡更新NK?因为这样不怎么懂电子/软件的人都可以去升级的。
此帖出自WindowsCE论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 10 楼 gooogleman 的回复:
引用 8 楼 songtitan 的回复:
SD的协议很简单!
前面初始化的命令序列是固定的,比如刚开始要不断CMD0,然后CMD1,再发CMD55和ACMD41,再通过CMD7置成transfer mode之类的,接着就可以用读写的cmd的不断读写了。。。(以上顺序凭记忆的,具体要看SD手册,或者随便找个SD的初始化代码抄袭)


//--------------也许是我第一次看。唉。
你是不是在读研究生啊,发现你经常泡在这里为我们解答啊。谢谢了。还是像我一样,公司不…

现在研究生能这么厉害?
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

16
 
很多研究生不知道有WINCE这个东西的。我接触过他们,他们就没有研究WINCE的,他们导师也没。估计名校的研究生会好点。
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 15 楼 xqhrs232 的回复:
很多研究生不知道有WINCE这个东西的。我接触过他们,他们就没有研究WINCE的,他们导师也没。估计名校的研究生会好点。

不能一概而论啊,俺们学校的研究生整天只会写论文,但是有一部分本科生却会wince/linux。有些人他会自己学的。
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

18
 
songtitan 的博客我去过,上面写着什么实习之类的东西。唉,估计也是毕业不久。不过你研究得相当深入。

我们这些小辈学习了。

================顺便问个问题
Command Format SD卡的命令格式问题
在SD卡手册里我看到它的命令格式是这样的
Bit position   47             46            [45:40]         [39:8]    [7:1]     0
Value         ‘0’            ‘1’               x              x         x      ‘1’
Description  start bit   transmission bit  command index  argument    CRC7    end bit

[45:40]位是command index ----我看到这个command index  是在2440的SDI Command Control Register (SDICmdCon)里面的【7:0】 位设置的
怎么我看三星提供的SD卡裸机测试程序发送CMD9时候会这样写的?
rSDICARG=RCA<<16;                                // CMD9(RCA,stuff bit)
rSDICCON=(0x1<<10)|(0x1<<9)|(0x1<<8)|0x49;        // long_resp, wait_resp, start, CMD9
----------红色的0x49是command index ,但是怎么会是CMD9
-----你做过点醒我一下哦。
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

19
 
同志们不要跑题,楼主,如果BSP本身没有支持bootloader下的SD更新nk,自己研究还是需要不少工作量的,最好的捷径就是能“弄到”别的平台的SD更新代码,改动就只是SD HOST controller部分。
阿弥陀佛,这个话题就可以到此为止了。
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
songtitan 牛人,回答一下我啊。
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表