亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vxw_pt5.html

?? vxworks 問題解答
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"><html><head>   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">   <meta name="GENERATOR" content="VIM on Unix and Win95">   <meta name="Author" content="Johan Borkhuis">   <meta name="description" content="VxWorks / Tornado II information / FAQ">   <meta name="keywords" content="VxWorks,Tornado,FAQ">   <meta name="version" content="$Id: vxw_pt5.html,v 1.34 2002/04/08 12:09:39 borkhuis Exp $">   <title>VxWorks and Tornado II FAQ</title></head><body><center><h1><strong><font size="+4">VxWorks / Tornado II FAQ</font></strong></h1></center><p><hr WIDTH="80%"><h2><a href="#5">5. VxWorks Questions</a></h2><blockquote><h3><a href="#5.1">5.1 C++ issues</a></h3></blockquote><blockquote><h3><a href="#5.2">5.2 Communication problems</a></h3></blockquote><blockquote><h3><a href="#5.3">5.3 Interrupts</a></h3></blockquote><blockquote><h3><a href="#5.4">5.4 LoadModule problems</a></h3></blockquote><blockquote><h3><a href="#5.5">5.5 pthreads</a></h3></blockquote><blockquote><h3><a href="#5.6">5.6 Reboot</a></h3></blockquote><blockquote><h3><a href="#5.7">5.7 Semaphores</a></h3></blockquote><blockquote><h3><a href="#5.8">5.8 Simulator (VxSim)</a></h3></blockquote><blockquote><h3><a href="#5.9">5.9 Task related items</a></h3></blockquote><blockquote><h3><a href="#5.10">5.10 Time related items</a></h3></blockquote><blockquote><h3><a href="#5.11">5.11 Wind Web Server related items</a></h3></blockquote><blockquote><h3><a href="#5.12">5.12 Zinc/windML related items</a></h3></blockquote><blockquote><h3><a href="#5.13">5.13 Other items</a></h3></blockquote><blockquote><h3><a href="#5.14">5.14 VxWorks AE questions</a></h3></blockquote><blockquote><h3><a href="#index">Index</a></h3></blockquote><hr WIDTH="80%"><p><h2><a NAME="5"><center>5. VxWorks Questions</center></a></h2><p><h3><a NAME="5.1"><center>5.1 C++ issues</center></a></h3><a NAME="5.1-A"></a>Q: When I download some C++ code my target crashes, even when I don't startanything.<p>A: What is probably happening is any static or global classes that you havedefined are having their constructors called.  The class is actually beinginstantiated when the file is loaded into memory, thus the constructor iscalled.<br>(From: nick_nw@my-deja.com)<p><hr WIDTH="50%"><a NAME="5.1-B"></a><p>Q: What is the syntax of "taskSpawn" for spawning a method of anobject (C++) as a task.<p>A: See question <A HREF="#5.9-F">5.9-F</A>.<p><hr WIDTH="50%"><a NAME="5.1-C"></a><p>Q: How can I call a C++ function from within a C-file?<p>A: See question <A HREF="vxw_pt1.html#1.1-H">1.1-H</A>.<p><hr WIDTH="50%"><a NAME="5.1-D"></a><p>Q: What is the preferred extension for C++ files?<p>A: For C++-files you can use .C (compared to .c for C-files), .cc, .cpp or.cxx.  Don't use .C (uppercase) as an extension for C++.  It works ok on Unixhosts, but won't work if you develop on Windoze... for obvious reasons.<br>The ending I prefer is .cxx.  Certain MS compilers don't like .cc, GCCdoesn't (or at least didn't in the past) like .cpp.  Both take .cxx.<br>(From: engineer_scotty, sj@aracnet.com)<p><hr WIDTH="50%"><a NAME="5.1-E"></a><p>Q: Gotcha with C++ static constructors and GCC 2.95.x (PPC)<p>A: After several hours of debugging and pulling out my hair :), I've just found a (afaik undocumented) bug with GCC 2.95.x which may cause static constructors/destructors to NOT work when loaded onto the target using the target-based loader (the ld/loadModule) commands.  Don't know if this effects the host-based shell or not.<p>Essentially, the problem is as follows:  The munch script can be told to produce assembly language output (actually a bunch of __asm__ directives for the C compiler to swallow) or C output.  When the latter is used, additional flags must be passed to the compiler (-fdollars-in-identifiers) to get the output of munch to compile; otherwise the presence of $  in the symbols will cause the compile to fail.  For this reason, the Tornado makefiles default to using the -asm option; the assembler has no problem with dollar signs.<p>The munched file, when compiled (by either method) containts two arrays of function pointers, _ctors and _dtors; these are a NULL-terminated list of the "constructor functions" and "destructor functions" (functions, one per file that has static ctors/dtors, which call all the static ctors/dtors in the file).   This seems to work fine with the 2.7.2 toolchain.  But with the 2.95.x  toolchain; using the assembler rather than the compiler causes a subtle change in the symbol table entry for the _ctors and _dtors symbols  (one  that will NOT show up with nmppc; only objdumpppc -t reveals this).  The "object" bit, which I suppose didn't exist with the 2.7 binutils; is NOT set when the input to the compiler is assembly code.<p>When the output of munch is linked back in with the module; everything is fine until you try loading it on the target.  For some reason; loadLib DOES NOT RECOGNIZE _ctors and _dtors as valid symbols and thus does NOT load them into the symbol table.  When cplusCtors is run (either manually, or automatically if cplusXtorSet is used); it looks in the symbol table to find _ctors; cannot find it; assumes that the module has no constructors, and silently exits.  (The same applies for cplusDtors and _dtors).<br>The workaround is to add the line<pre>MUNCH_FLAGS=</pre>to your makefiles.  This will force munch to output C code (which must be compiled with -fdollars-in-identifiers); which will have the "object" bit set in the generated object file.  loadLib will then properly generate symbol table entries for _ctors and _dtors, and all will be well.<p>Again, this affects GCC 2.95.x (using DaveK's stuff) on PowerPC.  Don't know about other architectures.  The 2.7.2 toolchain that ships with Tornado also seems to be unaffected.<br>(From: sj@shell1.aracnet.com, Scott Johnson)<hr WIDTH="60%"><p><h3><a NAME="5.2"><center>5.2 Communication problems</center></a></h3><a NAME="5.2-A"></a>Q: Is there any instance where msgQDelete can be blocking?<p>A: Yes, as with a lot of create and delete functions in VxWorks,<code>msgQDelete()</code> will make use of the dynamic memory management software torelease the memory that was claimed for the message queue datastructures (both the kernel's object structure and the buffer formessages in this case). <br>Since access to memory partitions is guarded by a mutex (a good idea!),it is certainly possible that any xxxCreate or xxxDelete routine couldblock. You shouldn't be using these functions in high performance blocksof code - it is generally best to keep your create and delete operationsto initialisation/shutdown regions of the code. <br>Now, in the case of message queues, an additional step is performed: thedelete function makes sure that it 'holds' all the message slots so ifthere are any messages already in the queue they will still be delivered(and your task that is trying to delete the message queue will blockuntil they are). For most people, that is the desirable behaviour sinceit makes sure that no messages are lost...                                      <br>(From: john_94501@my-deja.com)<p><hr WIDTH="60%"><p><h3><a NAME="5.3"><center>5.3 Interrupts</center></a></h3><a NAME="5.3-A"></a>Q: In my BSP there is an intConnect, but no intDisconnect. How can I disconnect a function from a interrupt?<p>A: I have attached an "<code>intDisconnect()</code>" routine for PPC that has served mewell for many years. Just include it as an extra object when you are compilingyour kernel. It takes one argument (the interrupt vector). <blockquote><a href="intdisc.c">intdisc.c</a></blockquote><br>(From: David Abbott, abbottd@jlab.org)<p><hr WIDTH="50%"><a NAME="5.3-B"></a><p>Q: What does "workQPanic: Kernel work queue overflow" mean?<p>A: It usually means that one of your Interrupt Service Routines is notclearing the IRQ status properly, so on exiting the ISR the interrupt lineis still active and it is just called again immediately.  If you can'twork out which it might help to try and get a logic analyser to look atthe interrupts that are occurring.<br>(From: Andrew Johnson, anj@aps.anl.gov)<p><hr WIDTH="50%"><a NAME="5.3-C"></a><p>Q: What does the function "__get_eh_context" do?<p>A: "__get_eh_context" is an abbreviation for "get exception handlercontext".  This will be called if you have C++ code, you are executingin an objects context and you have exception handling enabled.  Thecode uses the `this' pointer and can setup RTTI (run time typeidentification) and other C++ facilities.<br>You could use only Embedded C++ constructs and you will probably beok.  Alternatively, don't allocate any objects, even on the stack inyour ISR.  Object construction can call malloc and other routines thatyou shouldn't use.  It will definitely setup an exception context sothat if an exception is thrown, the object can be deleted. <br>(From: Bill Pringlemeir, bpringlemeir@yahoo.com)<p>C++ can be used in ISRs with extreme caution, like having the ISR in aseparate module that you can build using -fno-exceptions and -fno-rtti andbeing careful not to construct any objects and watching out for temporariescaused by reference parameters and so on, but there are so many pitfallsthat my advice would be to always write such lowlevel code as ISRs and eventhe lower layers of device drivers in plain C.<br>(From: Dave Korn)<p><hr WIDTH="50%"><a NAME="5.3-D"></a><p>Q: After calling intlock it seems that the interrupts are not locked whenlooking at the interrupt control register.<p>A: Seems that people still do not understand the scope of intLock(). Itworks only for the task context that calls it. If that task blocks (orexits), then interrupts will most probably be re-enabled. If the taskonly blocked, when it resumes execution they will be locked again.<br>Why? Because the MSR (using PPC) is in the task context. You shouldnot block with interrupts locked (or, for that matter, after callingtaskLock() either). Switching to a different task, or the idle loop,will re-enable the interrupts.<br>As for the wind shell (host shell), when you execute a command there,the target agent spawns a task to call the function. So callingintLock() from the wind shell results in a task on the targetexecuting intLock() and exiting. When the task exits, the schedulerwill be invoked and when the new task is selected, its value for theMSR will be restored.<br>(From: John, john_94501@yahoo.com)<br>(Note: this is also the case on MIPS. Also when calling intEnableon MIPS the interrupt will only be enabled for the task where youcalled intEnable; Johan)<p><hr WIDTH="60%"><p><h3><a NAME="5.4"><center>5.4 LoadModule problems</center></a></h3><a NAME="5.4-A"></a><p>Q: When I try to load a module with unresolved externals the functionloadModule returns a module-ID instead of returning NULL, as described inthe manual. How do I detect if there are unresolved externals?<p>A: First set errno to 0, then execute the call to loadModule, and ifthis call returns a valid module-ID check errno again. If errno indicatesan error there probably were some unresolved externals. In this case itis better to unload the module again.<br>(From : Bob Marino, ram@mr.picker.com)<p><hr WIDTH="50%"><a NAME="5.4-B"></a><p>Q: The ld command, run from a script, is behaving differently on a UNIXand an NT box.<p>A: I've observed a difference with the behavior of startup scripts. Theld command's normal form:<pre>  ld < foo</pre>worked fine with a UNIX host, but failed on NT.  I eventually found thatthe terminating &gt;CR&lt; was being included in the file name read from thescript and passed back to the ftp server.  The workaround was to use analternate form of the ld command in startup scripts:<pre>  ld 1,0,"foo"</pre>This works fine with both UNIX and NT hosts.<br>(From: Jerry Hudgins, jerry@e-farm.com)<p><hr WIDTH="60%"><p><h3><a NAME="5.5"><center>5.5 pthreads</center></a></h3>(This chapter was about Network related questions. These have been moved to <a href="vxw_pt4.html">part 4</a> of this FAQ.<p><a NAME="5.5-A"></a>Q: Has anyone ported pthreads.h from Linux to VxWorks?<p>A: yeah, we've done that.  The mapping from pthreads to VxWorks task_* et al.is pretty straightforward.  The only thing missing is condition variables.They turned out to be kind of hard.  You might also be able to useVxWorks semaphores, but we took a different approach.  We used a msgQ andtaskSuspend()/taskResume(). See this file for the implementation:<A HREF="pthreads.c">pthreads.c</a><br>The rest of the implementation is very easy, so I won't bore you with thedetails.<br>(From: Craig Vanderborgh, craigv@voxware.com)<p><hr WIDTH="50%"><a NAME="5.5-B"></a><p>Q: Is there a way to implement the VxWorks API on top of pthreads, tosimulate VxWorks on a different system?<p>A: Check out<A HREF="http://www.mvista.com">http://www.mvista.com</A> - they've recentlypublished a white paper that discusses this and the problems and differencesbetween the two APIs.<br>(From: Andrew Johnson, anj@aps.anl.gov)<p><hr WIDTH="60%"><p><h3><a NAME="5.6"><center>5.6 Reboot</center></a></h3><a NAME="5.6-A"></a>Q: When I do a hard reboot the system reacts differently than when using Ctrl-X. The reason is that Ctrl-X does a reboot(0), while a hard reboot doesa reboot(2), a boot clear. How can I let Ctrl-X do a reboot(2)?<p>A: Unfortunately, the ^x functionality is hardwired to do a"reboot (BOOT_WARM_AUTOBOOT)" call when the reboot character is recognized.There isn't any way to change what type of reboot is done. Some possibleways around this (none pretty) are to:<ol TYPE=A><li>Change the sysToMonitor function that gets called as the last stepof a reboot to override the "start type" used. This function is normallyprovided in sysLib.c as part of your BSP.</li><li>Use the abort function capability of the terminal driver to do thetype of reboot you want. The abort function is normally tied to ^Cand is used to restart the "shell". If you can live without thatcapability, you could use tyAbortSet() to change the abort characterto ^X and use tyAbortFuncSet() to install a function that woulddo the proper type of reboot (i.e. call reboot(BOOT_COLD)). Youwould need to make sure OPT_ABORT option was enabled for the serialconnection.</li><li>Install your own "reboot" handler that "took over" and finished thereboot process. You could use rebootHookAdd() to put in a functionthat did what reboot does. As I remember from when I decoded theroutine it did some cache disabling and then called sysToMonitor()with the "start type" parameter. You could do those same things withyour functions; calling sysToMonitor(BOOT_COLD).</li></ol>The first option is the easiest by far.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩三级在线| 一区二区三区四区高清精品免费观看| 欧美人体做爰大胆视频| 欧美日韩一区高清| 国产色爱av资源综合区| 2021国产精品久久精品| 久久久久久日产精品| 国产欧美综合色| 国产精品久久久久一区| 亚洲精品中文字幕乱码三区| 亚洲精品五月天| 午夜影院久久久| 久草精品在线观看| 国产成人在线观看| 91久久国产最好的精华液| 欧美亚男人的天堂| 欧美一区二区精品| 精品国产免费一区二区三区香蕉| 久久久久久久久久久电影| 国产精品三级视频| 亚洲免费观看在线视频| 肉丝袜脚交视频一区二区| 美国欧美日韩国产在线播放| 国产福利精品一区二区| 91在线免费看| 日韩一区二区三区三四区视频在线观看| 欧美大片免费久久精品三p| 中文字幕乱码久久午夜不卡 | 亚洲一二三区视频在线观看| 亚洲福利一区二区三区| 久久精品国产成人一区二区三区 | 久久九九全国免费| 亚洲私人影院在线观看| 日精品一区二区| 国产精品 日产精品 欧美精品| 91丨国产丨九色丨pron| 91精品国产欧美一区二区| 久久久久国产精品麻豆| 一区二区三区不卡视频 | 欧美丰满高潮xxxx喷水动漫| 精品粉嫩aⅴ一区二区三区四区| 国产精品色哟哟网站| 日韩高清在线电影| 成人精品一区二区三区四区 | 精品久久久久久久久久久久久久久久久 | 精品一区二区久久| 91色婷婷久久久久合中文| 69堂亚洲精品首页| 136国产福利精品导航| 免费久久精品视频| 91蝌蚪porny九色| 精品播放一区二区| 亚洲小说欧美激情另类| 成人一区在线看| 56国语精品自产拍在线观看| 中文子幕无线码一区tr| 美女视频黄 久久| 色婷婷综合久久久中文字幕| 精品久久久久久久久久久久久久久| 亚洲裸体在线观看| 国产精品18久久久久久久久| 欧美精品第1页| 亚洲另类一区二区| 粉嫩av一区二区三区| 欧美电影免费观看完整版| 亚洲一区日韩精品中文字幕| 国产91精品在线观看| 欧美tk—视频vk| 天天综合网天天综合色| 一本色道久久综合狠狠躁的推荐 | 亚洲一区二区黄色| 不卡一区二区中文字幕| 精品国产123| 日本中文字幕一区二区有限公司| 在线视频观看一区| 中文字幕在线一区免费| 国产高清久久久久| 久久中文字幕电影| 美女任你摸久久| 欧美一区三区二区| 亚洲高清免费观看高清完整版在线观看| 成人久久视频在线观看| 久久九九国产精品| 狠狠色狠狠色综合| 日韩美女视频一区二区在线观看| 视频在线观看一区| 欧美性高清videossexo| 伊人婷婷欧美激情| 99视频一区二区三区| 日本一区二区视频在线观看| 国产精品一区二区视频| 久久―日本道色综合久久| 精品在线你懂的| 精品国产乱码久久久久久老虎| 捆绑紧缚一区二区三区视频| 91精品国产一区二区三区蜜臀| 三级精品在线观看| 在线不卡一区二区| 日韩激情一区二区| 日韩限制级电影在线观看| 美日韩一区二区| 久久亚洲综合色一区二区三区| 精品一区在线看| 国产拍欧美日韩视频二区| 成人久久18免费网站麻豆 | 日本va欧美va精品发布| 日韩一区二区高清| 极品尤物av久久免费看| 久久综合国产精品| 国产成人在线视频网站| 国产精品久久毛片a| 99re热这里只有精品视频| 亚洲欧美福利一区二区| 色久优优欧美色久优优| 天天做天天摸天天爽国产一区| 欧美一区二区三区电影| 寂寞少妇一区二区三区| 欧美国产乱子伦| 91蝌蚪porny| 亚洲国产综合91精品麻豆| 91精品久久久久久蜜臀| 久久99久久精品欧美| 国产欧美一区二区精品性色超碰| jlzzjlzz国产精品久久| 亚洲综合av网| 欧美高清精品3d| 国产一区二区在线影院| 国产精品丝袜黑色高跟| 日本韩国一区二区三区| 日本欧美一区二区| 欧美激情中文字幕| 色94色欧美sute亚洲线路一久| 丝袜美腿亚洲综合| 国产色婷婷亚洲99精品小说| 在线欧美小视频| 麻豆精品一二三| 国产精品大尺度| 这里只有精品免费| 福利91精品一区二区三区| 一区二区三区在线免费| 精品国产一区二区在线观看| 99久久er热在这里只有精品15| 日韩专区中文字幕一区二区| 久久久久久久久99精品| 在线亚洲高清视频| 狠狠色丁香久久婷婷综合_中| 亚洲视频免费在线| 日韩色在线观看| 91色视频在线| 国产在线一区观看| 亚洲成av人片一区二区梦乃| 久久精品这里都是精品| 欧美亚洲另类激情小说| 国产在线播放一区| 亚洲一区自拍偷拍| 国产欧美一区二区三区鸳鸯浴 | 欧美成人一级视频| 91传媒视频在线播放| 国产美女精品一区二区三区| 亚洲精品欧美二区三区中文字幕| 欧美成人性战久久| 欧美日韩在线播放三区四区| 国产成人精品一区二区三区网站观看| 亚洲一区免费观看| 国产精品剧情在线亚洲| 精品99999| 欧美日本在线视频| 色屁屁一区二区| 成人美女视频在线观看| 久久成人久久鬼色| 一区二区在线免费观看| 国产日本欧美一区二区| 欧美一区二区视频在线观看| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 亚洲444eee在线观看| 亚洲欧洲精品天堂一级| 久久精品水蜜桃av综合天堂| 欧美一区二区三区四区高清| 欧美亚洲一区二区在线观看| 97久久超碰国产精品电影| 国产精品白丝jk白祙喷水网站| 美国毛片一区二区三区| 午夜精品久久一牛影视| 一区二区三区.www| 亚洲欧美日韩国产一区二区三区| 欧美极品美女视频| 26uuu国产一区二区三区| 91麻豆精品国产91久久久 | 国产日韩欧美综合一区| 欧美一区二区三区免费在线看| 欧美撒尿777hd撒尿| 色av一区二区| eeuss鲁片一区二区三区在线观看| 国产一区二区三区免费观看| 久久精品国产精品亚洲红杏 | 91黄色免费版| 91在线视频官网| 色综合咪咪久久| 日本乱人伦一区| 一本一道综合狠狠老|