登陆
|
注册
|
搜索
|
最近新帖
发帖子
|
共享我的资料
|
精华帖子
|
热门话题
导航:
老古网
→
老古论坛
→
XMOS公共讨论区
→
XMOS开源项目区
→
单片机程序设计
→
嵌入式系统
→
广告区域
→
→发表看法:[flycat2008]VxWorks基本概念及常见问题
No.49851
作者:flycat2008
邮件:yuanxuan2006@126.com
ID:114221
登陆:1次
文章数:40篇
最后登陆IP:
最后登陆:2008/7/14 12:15:37
注册:2008/7/14 12:15:37
财富:100
发帖时间:2008/7/22 15:51:28
发贴者IP:222.131.59.63
标题:flycat2008:
VxWorks基本概念及常见问题
摘要:No.49851VxWorks基本概念及常见问题
Bootrom和Boot image的区别,Boot image和VxWorks image的联系和区别bootrom 是指on-chip
bootrom,在CPU芯片内部,内嵌有小的boot程序(bootloader),类似于PC机主板上的BIOS的存储区域
。和boot image不是一回事。VxWorks文档中的bootrom区是指boot image存放的位置。
boot image的作用是把VxWorks image 加载到主板。boot image只初始化很少的硬件系统如串口,
网口等。为加载VxWorks image做准备,当VxWorks系统下载完毕后,boot image的作用也就完成了。
VxWorks image含有完整的VxWorks OS.是真正运行于目标板上的操作系统。应用程序运行于VxWorks
系统之上。
boot image 和VxWorks image生成在使用BSP文件上的区别在于:在启动顺序中Bootrom调用
bootConfig.c,而VxWorks调用usrConfig.c. 在ROM中VxWorks运行的方式(和bootrom编译到一起还是单
独固化到ROM中),在ROM中的内存分配?
VxWorks加载到主板运行,分不同的情况,如果VxWorks是压缩的,加载时解压到RAM的
RAM_HIGH_ADRS.如果是ROM based VxWorks,VxWorks image的data段复制到RAM的LOCAL_LOW_ADRS,
text部分留在ROM并在ROM中执行。
既不压缩又不ROM based的VxWorks直接copy到RAM_LOW_ADRS运行。
若在config.h中修改系统设置,如增加网卡等,是否需要重新烧bootrom?如果增加其他oem产品呢
?
如果主板中有Boot image存在则不需要重新烧,用FTP等download加载VxWorks即可。
VxWorks 系统编程中任务级与中断级的通讯如何实现?
中断是由硬件触发,软件的作用只是将中断服务例程(ISP)与中断事件连接起来。
1.使能中断,函数intEnable()。
2.用intConnect()登记中断号,和相应的中断例程ISR.这样一旦有中断发生,系统自动跳转到相
应位置执行ISR. Bootloader怎么得到,如果对开发板有些改动,还能使用开发板的bootloader吗?
bootloader起到什么作用?
Bootloader相当于PC机主板上的BIOS,是最底层的引导软件,初始化主板的基本设置,为接收外部
程序做硬件上的准备。
有些bootloader已经嵌在CPU内了,没有bootloader的CPU可以在片外的eeprom内做bootloader,也
可以不要 bootloader,直接通过JTAG口灌入程序,开发板改动基本上不会影响bootloader. VxWorks 应
用程序编译下载时常见问题及原因分析Tornado环境下编译产生的错误:标准C函数或自己的函数,变量
不认识(undefined symbol),编译失败。
Tornado支持c 和 c++ ,文件后缀为。cpp时编译器会认为是c++文件,这样有些定义类型为C的函数
在编译或下载时不被认可。
解决方法是 1.把如果在c++文件(。cpp)中调用c函数,应该把这些不被认可的c类型函数用语句
extern "C"说明一下为c函数。
另外,如果将c文件的后缀小写的。c误写为大写的。C,也会出同样的错误,编译时不会编译这个文
件。
Tornado环境应用程序下载产生的错误:函数不认识(undefined symbol),下载失败。
虽然编译通过,可是下载时依然会有这样的问题,仍然是函数或变量没有定义。系统不认识,这是
出错的原因基本上时没有定义的错误。查找包含函数或变量的头 文件是否加了进去。如果实在找不到定
义的话,简单的办法是先把这他们去掉(当然是没有其他地方用到的情况下)试一试,先down下去,能
运行后,然后添 加,再继续查找。
在ARM下不用Boot image,直接烧入VxWorks image的过程有些ARM CPU一般分两种运行方式,一种是
Boot方式,一种是normal方式。
在Boot方式下直接烧写VxWorks image到Flash, 这种VxWorks image包含有boot的功能(类似
VxWorks.rom形式),中间那段烧写到flash的程序是必须的,第一次通过串口下载VxWorks image到Dram
是一个简单的过渡,有boot loader控制。
当烧写完成后,切换CPU到normal模式,系统启动,开始逐行读Flash中的指令,是由VxWorks BSP控
制,根据不同的VxWorks image定义,执行不同的操作,例如若VxWorks是压缩的,则解压复制到DRAM的
高位地址,……。
VxWorks image 和Boot image中的两次硬件初始化之间的区别Boot image和VxWorks image都对硬件
进行了初始化。两次硬件初始化的是不同的。
BootRom映像主要作用是通过网口或串口下载VxWorks系统,所以它只是初始化很少的硬件系统如串
口,网口等来满足下载VxWorks的需要,一旦VxWorks下载完毕。这些初始化过的硬件的作用也就完成了
。
VxWorks启动后会从新对几乎所有的硬件设备进行完全的初始化来满足VxWorks操作系统运行的需要
。
汇编语言在VxWorks系统编程的使用:汇编语言主要出现在BSP文件roInit.s,sysAlib.s等,这些
汇编指令是系统初始化硬件用的, 硬件系统Power up时硬件特别是内存没有初始化,C函数库没有装入
内存,系统此时不支持C语言程序,只支持它自己的32位汇编指令,所以只能用汇编指令来初始化硬件,
为 后续的操作系统包括C语言支持做准备。在OS正常运行后,就可以用C了。
Tornado不支持汇编指令,汇编在编译连接BSP,生 成bootrom或VxWorks映像,才被编译。有两种方
法:1.现在 ......
>>返回讨论的主题
发表回复
用户名
*
您没有注册?
密码
*
验证码
*
.
标题
选择话题
[原创]
[转帖]
[灌水]
[讨论]
[求助]
[推荐]
[公告]
[注意]
[贴图]
[建议]
[下载]
[分享]
*
心情
随便说说
我回答你
最新发现
得意的笑
气死我了
真是没劲
坚决同意
表示反对
大家过来
好奇怪哟
懒得理它
大家小心
文件上传
允许类型
gif
jpg
jpeg
bmp
png
rar
txt
zip
mid
sch
pcb
ddb
iso
rtf
pdf
doc
ini
swf
内容
字体:
宋体
楷体
新宋体
黑体
隶书
Andale Mono
Arial
Arial Black
Book Antiqua
Century Gothic
Comic Sans MS
Courier New
Georgia
Impact
Tahoma
Times New Roman
Trebuchet MS
Script MT Bold
Stencil
Verdana
Lucida Console
字体大小:
1
2
3
4
颜色:
#F0F8FF
#FAEBD7
#00FFFF
#7FFFD4
#F0FFFF
#F5F5DC
#FFE4C4
#000000
#FFEBCD
#0000FF
#8A2BE2
#A52A2A
#DEB887
#5F9EA0
#7FFF00
#D2691E
#FF7F50
#6495ED
#FFF8DC
#DC143C
#00FFFF
#00008B
#008B8B
#B8860B
#A9A9A9
#006400
#BDB76B
#8B008B
#556B2F
#FF8C00
#9932CC
#8B0000
#E9967A
#8FBC8F
#483D8B
#2F4F4F
#00CED1
#9400D3
#FF1493
#00BFFF
#696969
#1E90FF
#B22222
#FFFAF0
#228B22
#FF00FF
#DCDCDC
#F8F8FF
#FFD700
#DAA520
#808080
#008000
#ADFF2F
#F0FFF0
#FF69B4
#CD5C5C
#4B0082
#FFFFF0
#F0E68C
#E6E6FA
#FFF0F5
#7CFC00
#FFFACD
#ADD8E6
#F08080
#E0FFFF
#FAFAD2
#90EE90
#D3D3D3
#FFB6C1
#FFA07A
#20B2AA
#87CEFA
#778899
#B0C4DE
#FFFFE0
#00FF00
#32CD32
#FAF0E6
#FF00FF
#800000
#66CDAA
#0000CD
#BA55D3
#9370DB
#3CB371
#7B68EE
#00FA9A
#48D1CC
#C71585
#191970
#F5FFFA
#FFE4E1
#FFE4B5
#FFDEAD
#000080
#FDF5E6
#808000
#6B8E23
#FFA500
#FF4500
#DA70D6
#EEE8AA
#98FB98
#AFEEEE
#DB7093
#FFEFD5
#FFDAB9
#CD853F
#FFC0CB
#DDA0DD
#B0E0E6
#800080
#FF0000
#BC8F8F
#4169E1
#8B4513
#FA8072
#F4A460
#2E8B57
#FFF5EE
#A0522D
#C0C0C0
#87CEEB
#6A5ACD
#708090
#FFFAFA
#00FF7F
#4682B4
#D2B48C
#008080
#D8BFD8
#FF6347
#40E0D0
#EE82EE
#F5DEB3
#FFFFFF
#F5F5F5
#FFFF00
#9ACD32
点击加入表情
选项
有回复时用短消息通知您?
老古网
执行:16毫秒 最大:78531毫秒 查询6次