三月十八是什么星座| ap是什么| 芹菜什么时候种植| 萎缩性胃炎伴糜烂吃什么药| gp是什么意思| 紫笋茶属于什么茶| 中性皮肤的特征是什么| 大便羊粪状吃什么药| 养膘是什么意思| 偷鸡不成蚀把米什么意思| 孩子上吐下泻吃什么药| 射手男和什么座最配对| 窦性心动过速是什么原因| 化疗后白细胞低吃什么食物补得快| 动物的尾巴有什么作用| 什么动物最聪明| 智齿为什么会横着长| 肝硬化吃什么药| 健康证明需要检查什么| 走路脚心疼是什么原因| 摆摊卖什么好| 米粉和米线有什么区别| 胯骨在什么位置图片| 口腔经常溃疡是什么原因| 吃什么补血快| 脉搏跳得快是什么原因| 太监是什么意思| 湿疹长什么样图片| 肺主治节是什么意思| 馄饨皮可以做什么美食| 男孩流鼻血是什么原因| 2月19日是什么星座| 婴儿头发竖起来是什么原因| 警察和公安有什么区别| 好难过这不是我要的结果什么歌| lagogo是什么牌子| 梦见带小孩是什么意思| bgm网络语什么意思| 6.8什么星座| 余的部首是什么| hpv是什么东西| 脸上长痘痘去医院挂什么科| ch是什么牌子| 锌是什么颜色| 三七治什么病最好| 上海市长是什么级别| 牙齿有黑洞是什么原因| 同型半胱氨酸偏高吃什么药| 拔完火罐要注意什么| 每天吃什么菜谱星期表| 多多包涵是什么意思| 脸上出汗是什么原因| 冰山一角是什么生肖| 每天做梦是什么原因引起| 甲状腺2类是什么意思| 2006年出生属什么| 918是什么星座| 纷呈是什么意思| 肚脐周围痛挂什么科| 列席是什么意思| 哈比是什么意思| 蚊子长什么样| 为什么老放屁| 微波炉里不能放什么| 大便里急后重什么意思| 胆结石不能吃什么| 肝内多发钙化灶是什么意思| 皮肤黑的人穿什么颜色的衣服显白| 嘴唇发白是什么原因引起的| 梦到吃肉是什么意思周公解梦| 喝枸杞子泡水有什么好处和坏处| 朝霞不出门晚霞行千里是什么意思| uranus是什么星球| 越国在现在的什么地方| abo是什么意思| 两个束念什么| 便秘看什么科| 树木什么| 轻如鸿毛是什么意思| epa和dha是什么| 蚂蚁吃什么食物| 0属于什么数| 智商105是什么水平| 心衰吃什么药最好| 2月19日什么星座| 什么是脂溢性脱发| 什么是无精症| 孕妇头疼是什么原因| 上面日下面立读什么| 月经一直不干净是什么原因引起的| 糖抗原125高什么意思| 人为什么没有尾巴| 医院脱毛挂什么科| 主理人什么意思| 哪吒代表什么生肖| 小号避孕套是什么尺寸| 10.30什么星座| 增强记忆力吃什么| 早上适合做什么运动| 复方板蓝根和板蓝根有什么区别| 商务专员是做什么的| 腿部肿胀是什么原因引起的| 小便带血是什么原因男性| 乙醇对人体有什么伤害| 禁忌症是什么意思| 一什么方法| 39是什么意思| 权志龙的团队叫什么| 四月初七是什么星座| 布谷鸟叫有什么征兆| 阿奇霉素主治什么病| 升字是什么生肖| 小学什么时候放暑假| 36年属什么生肖| 我行我素的人什么性格| 95年属什么生肖婚配表| 帛书是什么意思| 指甲分层是什么原因| 杏黄是什么颜色| itp是什么病的简称| 口疮是什么原因引起的| 脱发应该挂什么科室| 小白兔是什么意思| jewelry什么意思| 毛片是什么| 天蝎座女生配什么星座| 母是什么结构| 辟加木念什么| 盲约大结局是什么| 1985年属什么生肖| ktv是什么意思| 什么平什么静| 肺慢阻是什么情况| 隐血十一是什么意思| 安代表什么生肖| 什么叫做亚健康| 行了是什么意思| 跃字五行属什么| 为什么说金克木生财| 安全总监是什么级别| 深水炸弹什么意思| 迁单是什么意思| 爬山膝盖疼是什么原因| 小厨宝是什么| 大马猴是什么意思| 烂好人是什么意思| 怀疑心衰做什么检查| 元朝是什么民族| 宫颈欠光滑是什么意思| 尿检蛋白质弱阳性是什么意思| 左室舒张功能减低什么意思| 什么意| 小腿肌肉痛什么原因| 挂名什么意思| launch什么意思| 生理曲度存在是什么意思| 发改委是做什么的| 注解是什么意思| 撩 是什么意思| 女人吃葛根粉有什么好处| 平均红细胞体积偏低是什么意思| 奶粉罐可以做什么手工| 丝瓜有什么功效| 水漫金山什么意思| 脂肪肝要注意什么| 蚂蝗长什么样| 日柱国印是什么意思| 徐才厚什么级别| 二椅子什么意思| 粘土是什么土| 新生儿睡觉突然大哭是什么原因| 误人子弟什么意思| 乙肝没有抗体是什么意思| 衬衫配什么裤子好看| 里脊肉是什么肉| 学名是什么意思| 一什么野花| 胃难受想吐是什么原因| 吃什么壮阳补肾| 人工荨麻疹是什么原因引起的| usim卡是什么卡| 胱抑素是什么| 为什么睡觉会打呼| 什么能增强免疫力| 打嗝医学术语是什么| 爆缸是什么意思| 雀斑是什么原因引起的| 溶血症是什么症状| 荨麻疹用什么药好| 孕妇贫血对胎儿有什么影响| 鸟吃什么东西| 脚底痛挂什么科| 怀孕一个月有什么反应| samsonite什么牌子| 985高校是什么意思| 心口下面疼是什么原因| 睡眠障碍是什么原因引起的| 小便尿血是什么原因| 火加田读什么| 714什么星座| 头部紧绷感是什么原因| 身上痒是什么原因引起的| nak是什么牌子| 偶发室上性早搏是什么意思| flag是什么意思| 枸杞有什么功效| 了是什么词性| 包袱什么意思| 欲加之罪何患无辞是什么意思| 艾滋病阳性是什么意思| 六神无主是什么生肖| 新生儿吐奶什么原因| 旧加一笔是什么字| 肉是什么结构| 梦见两个小男孩是什么意思| 王安石号什么| 贻笑大方是什么意思| nhl医学上是什么意思| 竹荪是什么| 拉黄尿是什么原因| 高压低是什么原因引起的| 黄金五行属什么| 数位是什么| 当局是什么意思| 五谷指什么| 酸碱度偏低是什么原因| 肾水不足是什么意思| 心肌炎挂什么科| 威胁是什么意思| 小姐姐是什么意思| 鼻孔流血是什么原因| 显著是什么意思| 中国的国花是什么花| 生男生女取决于什么| 煤油是什么油| 子宫癌筛查做什么检查| 什么鸡没有翅膀| 眼睛红血丝多是什么原因| 慈禧为什么要毒死光绪| 蝉什么时候出现| 机化是什么意思| 膝盖疼挂什么科| 衬衫搭配什么裤子好看| 酉鬼念什么| 女性尿道口有小疙瘩是什么原因| 吃什么止腹泻| 吃茄子对身体有什么好处| 梦见别人给我介绍对象是什么意思| 什么帽不能戴| 耳朵痒用什么药最有效| 子宫肌瘤是什么原因造成的| 肛瘘挂什么科| 纹理是什么意思| 狗皮膏药是什么意思| 柏油样便见于什么病| 眩晕症是什么引起的| 牛油果是什么季节的水果| 活化部分凝血活酶时间偏高是什么意思| 茔和坟有什么区别| 列文虎克发明了什么| 胃疼吃什么药管用| 梦见数字是什么意思| 星五行属性是什么| 7月24是什么星座| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? MCU ? vxWorks在线升级技术

共7条 1/1 1 跳转至

vxWorks在线升级技术

菜鸟
2025-08-04 22:34:36     打赏
vxWorks在线升级技术 看到有很多网友询问在vxworks下如何实现在线升级,逐一答复了多次,还是没能说明白。因此决定把自己以前实际做的过程描述一下,希 望能对大家有所帮助。如有不妥之处,请指出。
本人曾经在ppc860T, ppc850, pentium-pc104(加doc2000)的目标机上实现过。
1 首先,需要在目标机上实现文件系统,比如使用trueFFS,用dosFS初始化tffs设备。在完成tffs驱动之后,可以调用
usrTffsConfig(0,0,"/flash");
如果成功,在shell下调用devs命令,应该能够看到 /flash设备。
2 板子上首先应该有bootrom,如果没有,使用仿真器写入。
3 让板子flash中的bootrom启动,通过网络加载vxworks。更新vxworks,应该使目标机在vxworks操作系统的支撑之下。即在运行vxworks时更 新存储在flash中的vxworks映象。
该vxworks中应该包含tffs组件,并用usrTffsConfig创建一个tffs设备。如果创建不成功,先调用sysTffsFormat格式化该设备,再创建。
这个vxworks中,应该包含下列代码(也可以启动完毕之后,通过target server动态下载):
STATUS myftp(char* host, char* user, char* passwd, char* srcFile, char* desFile)
{
int fd, total = 0;
int ctrlSock;
int dataSock;
char buf [1024];
int nBytes; remove ( desFile); fd=open(desFile,0x202,0);
if (ERROR==fd)
{
return ERROR;
}

if (ftpXfer (host,user,passwd , "", "RETR %s",NULL, srcFile, &ctrlSock, &dataSock) == ERROR)
{
return (ERROR);
} while ((nBytes = read (dataSock, buf, 512)) > 0)
{
total += nBytes;
write(fd, buf, nBytes);
}
close(fd);
close (dataSock);
close (ctrlSock);
if(total > 0)
{
return ERROR;
} return OK;
}
各参数的含义为:
char* host: 主机ip地址,该主机上存放了最新的vxworks映象。
char* user: ftp的用户名。
char* passwd: ftp的密码。
char* srcFile: 主机上vxworks映象的文件名,通常为vxworks。
char* desFile: 目标机上存放的vxworks文件名,通常为vxworks。 4 由于后面vxworks将从tffs中加载,而不是通过网络,因此应该在usrAppInit中初始化网络接口。
在tornado2.0.x下可以这样做:
usrNetEndDevStart("cpm",0);
usrNetIfConfig("cpm",0,"192.168.0.240","cpm",0xffffff00);
在tornado2.2.x下,可以这样做:
ipAttach(0,"cpm");
ifMaskSet ("cpm0", 0xffffff00);
ifAddrSet ("cpm0","192.168.0.240"); 5 目标机启动完毕之后,在某一台主机上打开ftp server,该主机上存放了最新的vxworks映象文件。此外,还应该创建一个用户,比如用户 名和密码均为“target”,设置它的home directory为最新的vxworks的路径。
6 在目标机的target shell中执行myftp,比如:
myftp("192.168.0.1", "target", "target", "vxWorks", "vxWorks")
如果执行成功,返回OK(0),否则为ERROR(-1)。不成功,则检查网络和ftp服务器端的服务和配置。
这样,新的vxworks就存放于tffs设备中,需要重新启动目标机,使其运行新的vxworks(本文中的vxworks既包含了操作系统,也包含了用 户应用程序)。
7 我们需要更新bootrom,使目标机加电后直接从tffs设备中加载vxworks。为此,修改bsp的config.h文件:
#define DEFAULT_BOOT_LINE \
"tffs=0,0(0,0)host:/flash/vxWorks h=192.168.0.118 e=192.168.0.120 u=target pw=target" #define INCLUDE_TFFS
#define INCLUDE_DOSFS 如果是在tornado2.0.x下,还需要修改 \target\config\comps\src\net\usrNetBoot.c文件:
if ( (strncmp (sysBootParams.bootDev, "scsi", 4) == 0)
|| (strncmp (sysBootParams.bootDev, "ide", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "ata", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "fd", 2) == 0))
改为:
if ( (strncmp (sysBootParams.bootDev, "scsi", 4) == 0)
|| (strncmp (sysBootParams.bootDev, "ide", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "ata", 3) == 0)
|| (strncmp (sysBootParams.bootDev, "tffs", 4) == 0)
|| (strncmp (sysBootParams.bootDev, "fd", 2) == 0)) 8 build bootrom,生成可以使用的bootrom.bin文件。在这一步之前,应该首先make clean。
9 更新bootrom时,我们可以直接使用vxworks中FTP Client和Network Remote I/O Support组件。为此,需要使当前正在运行的vxworks是通 过网络加载的,这样vxworks启动完毕之后,当前默认路径是主机上vxworks映象文件所在的目录,可以用pwd和ls命令查看。把上一步中生成的 bootrom.bin文件拷贝到该目录下。该主机上同样需要启动ftp server服务。
10 在目标机的target shell中执行
tffsBootImagePut 0,0x100,"bootrom.bin"
正常情况下就可以通过tffs文件系统在线更新了bootrom,使其从tffs设备中加载vxworks。



关键词: vxWorks     在线升级     技术     vxworks    

菜鸟
2025-08-04 01:55:00     打赏
2楼
收藏。

菜鸟
2025-08-04 22:24:00     打赏
3楼
以下是引用springwind在2004-2-3 14:21:00的发言:
但是版主这样做存在一个问题,那就是vxworks的体积比vxworks_rom大很多,甚至几倍,这样当一个程序比较大时,就对FLASH空间有很大的浪费!
正确,不过请参考我的另外一篇文章“vxworks压缩技术”,精华区里面有。好像是去年4月写的。

菜鸟
2025-08-04 22:27:00     打赏
4楼
软盘引导的,就不需要tffsBootImagePut更新bootrom了。 vxworks启动后,从doc拷入内存,此时可以删除或覆盖原doc上的vxworks镜像,不影响应用程序的执行。 如果没有网络接口,可以不使用ftp,自己写个串口文件传送的程序,把新的vxworks镜像从pc端,写入doc。

菜鸟
2025-08-04 19:35:00     打赏
5楼
To FireRiver: 你说的有道理。之所以使用bootrom+vxworks方式,是为了方便在线升级,通过修改bootrom的引导参数,我们可以随时决定是从本地加载vxworks,还是远程加载。如果vxworks有问题,也能确保把板子启动起来。如果使用vxworks_rom,如果生成的vxworks_rom.bin文件有问题(常常会出现这样的问题,主要是转换时地址空间不正确引起的),板子就无法启动。 我没有使用过tffsBootImagePut来更新vxworks_rom,按道理应该是可以的。

菜鸟
2025-08-04 20:07:00     打赏
6楼
加精。加精!嘿嘿

不过有两个地方需要更正一下,至少照我目前做的来看,我的环境是t221 for pentium, 硬件PC104,主机winxp

if (ftpXfer (host,user,passwd , "", "RETR %s",NULL改为".", srcFile, &ctrlSock, &dataSock) == ERROR)
{
return (ERROR);
}


while ((nBytes = read (dataSock, buf, 512)) > 0)
{
total += nBytes;
write(fd, buf, nBytes);
}
close(fd);
close (dataSock);
close (ctrlSock);
if(total > 改为=0)
{
return ERROR;
}

注释:第一个地方,我的ftp服务器CWD NULL提示失败,cwd .进入当前目录就没问题的
第二个,这个修改很显然的吧?^_^,不然就全部return ERROR了

再次谢谢gem2000



菜鸟
2025-08-04 20:51:00     打赏
7楼
谢谢了

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
猫藓用什么药 乌龟和鳖有什么区别 胸痛一阵一阵的痛什么原因 宝宝不喝奶是什么原因 堂哥的女儿叫什么
喜爱的反义词是什么 粉碎性骨折是什么意思 什么三迁 鼻窦炎吃什么药好得快 igg抗体阳性是什么意思
肺门不大是什么意思 维生素d什么牌子的好 尿道炎是什么原因引起的 一直打嗝是什么原因引起的 胳膊疼是什么原因
脑垂体在什么位置图片 做免疫组化意味什么 米是什么结构 前庭神经炎挂什么科 什么米不能吃
上海特产是什么hcv9jop4ns0r.cn 真菌怕什么消毒液hcv8jop5ns2r.cn 常规血检能查出什么hcv9jop6ns2r.cn 华是什么意思creativexi.com 此地无银三百两什么意思hcv8jop9ns0r.cn
部级是什么级别hcv9jop5ns0r.cn 什么叫宿根太阳花xinjiangjialails.com iwc手表是什么牌子hcv9jop2ns5r.cn 怀孕什么时候建档hcv7jop5ns2r.cn 1984年属鼠五行属什么hcv9jop0ns3r.cn
叶酸片什么时候吃hcv8jop3ns9r.cn 颌下淋巴结肿大挂什么科adwl56.com 做梦梦见别人怀孕是什么意思hcv8jop4ns0r.cn 老二是什么意思bysq.com 红枣有什么功效hcv9jop4ns7r.cn
酝酿是什么意思hcv8jop7ns8r.cn 精益求精下一句是什么hcv8jop9ns5r.cn nothomme什么牌子hcv9jop4ns3r.cn 黄晓明和杨颖什么时候结婚的hcv9jop3ns4r.cn 海藻是什么植物hcv9jop3ns1r.cn
百度