vxworks下程式設計的幾個誤區
tornado使用標準c語言嗎?為什麼沒有提供inb(), outb()等函式?
tornado預設使用gnu編譯器,支援ansiiso c, c++,以及at&t語法彙編 (非intel)。由於c++很龐大,
而且在不斷發展,所以有些標準c++的特徵 可能gnu不支援(基本沒有編譯器支援所有c++特徵)。程式
員一般只要 掌握常用部分就能編出不賴的程式了。 inb(),outb()是turbor cdos下的,不屬於標準c。
tornado在bsp中 提供了相應的sysinbyte(),sysoutbyte()等函式,參考bsp下的sysalib.s。
vxworks下怎麼訪問a盤,c盤(pc機環境)?
a,c是m$對pc機裝置的命名方式,目的是讓傻瓜使用者方便理解。 vxworks下叫fd0和ata0。
目標機沒有鍵盤和顯示器,printf()列印到**去了?
列印到標準輸出裝置上了。至於標準裝置是什麼,如果你用pc 終端,就到螢幕上;否則到系統中第乙個
串列埠去;還有可能 被重定向到別的裝置上了,比如磁碟檔案或telnet埠。
如果什麼都沒有,列印的字串被丟棄。
c語言中,3個標準裝置的檔案描述符為std_in, std_out, std_err; 檔案指標為stdin, stdout,stderr
;c++中有cin, cout, cerr物件。
怎麼在vxworks下用(段偏移位址)方式訪問埠?
vxworks for x86工作在保護模式下,應用程式不用關心段的存在。 直接用線性位址訪問即可,例如:
(unsigned short )0xb8000 = 0xaa55; 可以訪問video ram。
(8086,dos真是害人的玩藝兒,是不是現在大學裡還在教)
在中斷服務程式(isr)中呼叫printf()列印除錯資訊。
程式宕機是正常的,沒有燒壞硬體算幸運的了。vpg裡規定了 哪些函式是可以呼叫的。關鍵是printf()
會引起任務阻塞,而中斷不是任務。可以用logmsg()。
分不清fopen(),fread()和open(),read()的區別。
fwrite等是帶緩衝的,最好別用在串列埠或音訊等裝置上。寫串列埠的意思 是希望串列埠立即把資料傳送出去
,而不是放在緩衝區中。另外,工作 在line_mode下的串列埠驅動本身就具有緩衝能力。
網路管理的幾個誤區
許多人對於自己的資料和網路目前有一種虛假的安全感 在邊界安裝了防火牆 在桌面上安裝了防病毒和防間諜軟體工具 使用加密技術傳送和儲存資料 此外,微軟及各大安全公司不斷增強安全工具和補丁程式 似乎可以鬆口氣了,但果真如此嗎?以下是有關安全的七大誤解,不妨看看你的資料是否有你想象中的那麼安全。誤解一 加密...
PCB設計的幾個誤區
現象一 這板子的pcb 設計要求不高,就用細一點的線,自動布吧 點評 自動佈線必然要占用更大的pcb面積,同時產生比手動佈線好多倍的過孔,在批量很大的產品 中,pcb廠家降價所考慮的因素除了商務因素外,就是線寬和過孔數量,它們分別影響到pcb的成品率和鑽頭的消耗數量,節約了 商的成本,也就給降價找到...
Redis 認識的幾個誤區
redis的資料全部放在記憶體帶來了高速的效能,但是也帶來一些不合理之處。比如乙個中型 有100萬註冊使用者,如果這些資料要用redis來儲存,記憶體的容量必須能夠容納這100萬使用者。但是業務實際情況是100萬使用者只有5萬活躍使用者,1周來訪問過1次的也只有15萬使用者,因此全部100萬使用者的...