亚洲欧美第一页_禁久久精品乱码_粉嫩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人在线观看导航| 欧美日韩国产一区二区三区地区| 国产高清成人在线| 免费看欧美女人艹b| 亚洲一区在线观看免费| 国产精品久久看| 久久久久久97三级| 日韩女优av电影| 欧美精品日日鲁夜夜添| aaa亚洲精品| 国产xxx精品视频大全| 看电影不卡的网站| 日韩精品亚洲专区| 亚洲一区二区不卡免费| 亚洲欧美国产77777| 欧美国产成人精品| 久久精品在这里| 欧美精品一区二区精品网| 6080午夜不卡| 8x福利精品第一导航| 在线播放国产精品二区一二区四区| 日本久久精品电影| 色综合天天综合网天天看片| 欧美一级二级三级乱码| 91免费国产视频网站| 白白色 亚洲乱淫| 成人综合婷婷国产精品久久蜜臀| 国产在线精品一区二区不卡了 | 欧美日韩免费不卡视频一区二区三区| 99久久精品国产一区| 国产成人精品亚洲777人妖| 国产精品1区二区.| 国产成人精品aa毛片| 国产福利不卡视频| 成人自拍视频在线| av一区二区三区黑人| 91亚洲精华国产精华精华液| 一本到不卡精品视频在线观看| 99综合电影在线视频| 色呦呦一区二区三区| 欧美无乱码久久久免费午夜一区| 欧美影院午夜播放| 91精品在线一区二区| 日韩欧美第一区| 久久久久久一级片| 国产精品久久久久精k8| 亚洲一区二区不卡免费| 蜜桃视频免费观看一区| 国模娜娜一区二区三区| 成人一区在线看| 欧亚洲嫩模精品一区三区| 欧美一区二区视频观看视频 | 欧美xingq一区二区| 国产亚洲精品7777| 一区二区在线观看不卡| 七七婷婷婷婷精品国产| 国产一区欧美一区| 91在线免费播放| 91精品国产美女浴室洗澡无遮挡| 精品国产髙清在线看国产毛片| 中文一区一区三区高中清不卡| 亚洲欧美在线观看| 日本亚洲欧美天堂免费| 国产高清精品久久久久| 91精品91久久久中77777| 欧美一级国产精品| 国产精品动漫网站| 欧美aaaaa成人免费观看视频| 国产成人av在线影院| 欧美性大战xxxxx久久久| 久久综合九色欧美综合狠狠| 亚洲欧美日韩国产综合| 日本一不卡视频| 波多野结衣亚洲| 日韩一区二区在线观看| 国产精品国产精品国产专区不蜜 | 极品少妇xxxx偷拍精品少妇| 99r国产精品| 日韩午夜激情免费电影| 日韩理论片网站| 精品午夜久久福利影院| 欧美中文字幕亚洲一区二区va在线| 精品国产三级电影在线观看| 一区二区三区.www| 国产一区二区精品在线观看| 欧美视频在线不卡| 亚洲国产高清在线观看视频| 日本va欧美va欧美va精品| 91日韩精品一区| 精品国产3级a| 图片区小说区国产精品视频 | 欧美变态口味重另类| 亚洲黄色免费网站| 成人免费毛片嘿嘿连载视频| 欧美一级专区免费大片| 亚洲已满18点击进入久久| 大胆亚洲人体视频| 精品国产精品网麻豆系列| 丝袜亚洲另类欧美综合| 色综合久久六月婷婷中文字幕| 欧美精品一区二区精品网| 视频一区二区国产| 91福利资源站| 日韩理论片在线| 成人18视频日本| 国产精品午夜在线| 国产成人h网站| 久久九九久久九九| 韩国成人福利片在线播放| 欧美一个色资源| 免费亚洲电影在线| 91精品国产综合久久福利软件| 亚洲无线码一区二区三区| 91视频xxxx| 亚洲理论在线观看| 91麻豆精东视频| 亚洲欧美日韩小说| 色综合色综合色综合| 亚洲日本成人在线观看| 99久久精品免费精品国产| 一区二区中文视频| 97久久人人超碰| 一区二区三区在线观看网站| 日本道在线观看一区二区| 国产精品大尺度| 97精品久久久午夜一区二区三区| 中文字幕第一区二区| 丁香啪啪综合成人亚洲小说| 国产精品日韩成人| av网站一区二区三区| 成人欧美一区二区三区白人 | 精品久久久久久亚洲综合网| 日本91福利区| 精品国产乱子伦一区| 精品写真视频在线观看| 久久久美女毛片| 成人性生交大合| 自拍偷拍亚洲综合| 欧美午夜免费电影| 视频一区二区国产| 精品国产伦一区二区三区免费| 国产在线精品免费| 国产精品久久久久久久久久久免费看| 99久久久无码国产精品| 亚洲精品成人在线| 91精品国产欧美一区二区成人| 久久www免费人成看片高清| 久久久综合九色合综国产精品| 国产91精品入口| 一区二区欧美精品| 欧美一区在线视频| 国产成人av自拍| 一区二区三区 在线观看视频| 欧美卡1卡2卡| 国产高清一区日本| 一区二区三区在线观看视频| 欧美一级二级三级蜜桃| 懂色一区二区三区免费观看| 亚洲美女免费在线| 91麻豆精品国产无毒不卡在线观看 | 欧美日韩国产一级二级| 精品一区二区影视| 国产精品视频麻豆| 欧美日韩一区小说| 国产黄人亚洲片| 亚洲一二三区在线观看| 精品乱人伦小说| 99久久久精品免费观看国产蜜| 日韩专区中文字幕一区二区| 久久久精品欧美丰满| 欧美色老头old∨ideo| 国产乱码精品1区2区3区| 洋洋成人永久网站入口| 日韩精品专区在线影院重磅| av在线这里只有精品| 全国精品久久少妇| 亚洲视频每日更新| 精品久久久久99| 欧美日韩一区二区电影| 国产成人精品午夜视频免费| 日韩不卡在线观看日韩不卡视频| 国产精品久久久一本精品| 日韩一级成人av| 91视频国产资源| 国产精品正在播放| 亚洲成a人片在线观看中文| 亚洲国产成人一区二区三区| 8x8x8国产精品| 在线观看一区日韩| 成人aa视频在线观看| 黄色日韩三级电影|