Time of Update: 2018-12-05
過去很多嵌入式系統不是一個作業系統,或者是供應商的專有核心,或者是DOS作業系統的擴充。顯然這些方法並不能適應今天嵌入式系統開發的要求!現有的一些商業即時作業系統,儘管提供了很小的核心和多任務開發環境,但效能並不理想,也不符合現在即時嵌入式市場的需求。
Time of Update: 2018-12-05
可能學習qt的人普遍感覺qt的ide開發環境比較少,也比較難找。其實作linux開發的,ide環境是比較匱乏的。這裡我推薦幾款比較好的ide:1,kdevelop 3.5 版 ,老牌的整合式開發環境 ,支援qt42,monkey studio ,http://www.monkeystudio.org/3,edyuk ,http://sourceforge.net/project/showfiles.php?group_id=1682604,cobras
Time of Update: 2018-12-05
核心使用了大量不同的宏來標記具有不同作用的函數和資料結構。如宏__init 、__devinit 等。這些宏在include/linux/init.h 標頭檔中定義。編譯器通過這些宏可以把代碼最佳化放到合適的記憶體位置,以減少記憶體佔用和提高核心效率。下面是一些常用的宏:· __init ,標記核心啟動時使用的初始化代碼,核心啟動完成後不再需要。以此標記的代碼位於.init.text 記憶體地區。它的宏定義是這樣的:· #define _ _init _ _attribute_ _ ((
Time of Update: 2018-12-05
我們通常把一些公用函數製作成函數庫,供其它程式使用。函數庫分為靜態庫和動態庫兩種。靜態庫在程式編譯時間 會被串連到目標代碼中,程式運行時將不再需要該靜態庫。動態庫在程式編譯時間並不會被串連到目標代碼中,而是在程式運行是才被載入,因此在程式運行時還需要 動態庫存在。 本文主要通過舉例來說明在Linux中如何建立靜態庫和動態庫,以及使用它們。 在建立函數庫前,我們先來準備舉例用的來源程式,並將函數庫的來源程式編譯成.o檔案。
Time of Update: 2018-12-05
實現原理
Time of Update: 2018-12-05
在不具備gdb環境的類Linux系統開發板上調試段錯誤,大致定位出錯函數位置理論知識就不講了,想瞭解的可以在搜尋下“Linux下的段錯誤產生的原因及調試方法” 這篇文章,本文的內容基本是從那文章裡提取出來的。1 初步步驟:1)在你的代碼中添加如下代碼:#include <execinfo.h>#include <stdio.h>#include <stdlib.h>#include <signal.h>void dump(int signo){
Time of Update: 2018-12-05
後記: 採用波形拼接的方法有個很大的缺點,就是使用的語音庫檔案太大,而且多音節字根本無法解決。還有一種實現中文TTS方法就是記錄全部的發音,因為在普通話中,實際存在的發音只有1333種。所以我們的語音庫只要儲存這1333個語音就行,而不需要儲存每個漢字的讀音。如果語音庫只有1333個讀音的話,我們還得建立索引表來記錄每個漢字在語音庫中的位置,因為有了索引表,就可以解決多音漢字的問題,由於涉及到多音漢字發音的識別,還得用到
Time of Update: 2018-12-05
合成語音歸根到底是根據漢字在字元集的定位來取語音庫中的資料定位方法:根據救字的兩個位元組中的值.從高位元組算出漢字的位wm.從低位元組算出漢字的區qm,(qm一176)*94+wm一160就是該況字在漢字集裡的位置position,而該漢字所對應的語音資料的位移量就是(position一1) 3200+46。根據定位方法取得漢字在語音庫中的發音資料後,根據WAV格式合成語音檔案。定位和合成代碼如下:#define MAXLEN
Time of Update: 2018-12-05
Time of Update: 2018-12-05
首先,這裡有2個概念:靜態庫,動態庫.靜態庫: 是程式在連結時將靜態庫拷貝到可執行檔裡,即產生可執行檔後,即使刪除靜態庫,可執行檔仍可正常執行。動態庫: 也叫共用庫,程式只是在連結時在可執行檔時儲存了該庫的資訊,可執行檔執行時候需要到LD_LIBRAY_PATH或者/etc/ld.so.config裡指定的路徑去尋找該庫並載入調用,因此如果刪除該庫,可執行檔將無法正常執行。
Time of Update: 2018-12-05
聲明:本文毫無技術含量,毫無借鑒意義,純粹牢騷泄憤。 想做一個項目,用Linux下的Qt,本還以為會“看起來很厲害的樣子”,結果真的被噁心到了。想做的是坦克大戰,別的就不說了,起碼遊戲的開始、過程和結束都應該有一定的音效,結果這點幾乎要了我的命。我用的是Fedora 17 ,Qt的版本 是在約前一個月之內用 yum install Qt Qt-creator 等幾個命令直接安裝的,後來運行時我看了,Qt 版本好像是4.8.* ,Qt -Creator 版本應該是
Time of Update: 2018-12-05
經過一段時間的摸索,今天總算將2.6.35.5核心成功移植到了tq2440上,總體來說和2.6.30.4核心移植變化不大,可以參考文章tq2440 Linux 2.6.30.4核心移植完成大部分工作,檔案系統也採用該文章中製作的即可。但移植過程中也存在一些差異,在這裡總結出來。(1) General setup ---> Choose SLAB allocator (SLAB)
Time of Update: 2018-12-05
將uImage通過tftp下載到開發板,系統啟動後一直迴圈出現如下資訊,無法進行操作。s3c2410-sdi s3c2410-sdi: running at 0kHz (requested: 0kHz).s3c2410-sdi s3c2410-sdi: running at 98kHz (requested: 99kHz).s3c2410-sdi s3c2410-sdi: running at 98kHz (requested: 99kHz).s3c2410-sdi s3c2410-sdi:
Time of Update: 2018-12-05
這幾天,突然發現移植好的s3c2410的串口2在linux系統下竟然不能用,趕緊查了很多資料,發現,若要在linux系統下是用s3c23410的串口2 ,需要修改核心,把s3c2410的串口2配置成普通的串口。 1.修改arch/arm/mach-s3c2440/mach-smdk2440.c中的uart2的配置,修改後如下: static struct s3c2410_uartcfg smdk2410_uartcfgs[] __initdata = { [0] =
Time of Update: 2018-12-05
一、利用iconv函數族進行編碼轉換在LINUX上進行編碼轉換時,既可以利用iconv函數族編程實現,也可以利用iconv命令來實現,只不過後者是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。iconv函數族的標頭檔是iconv.h,使用前需包含之。 #include iconv函數族有三個函數,原型如下: (1) iconv_t iconv_open(const char *tocode, const char *fromcode); 此函數說明將要進行哪兩種編碼的轉換,
Time of Update: 2018-12-05
C標準函數,似乎不應該有平台問題:我們看一下這個程式:#include #include int main() { rename(”/tmp/abc”,”/tmp/bcd”); perror(”why:”); }此程式運行一切正常。自己將路徑修改為不同的分區之間移動,或者將同一分區掛載到不同的mount點進行rename。 看看結果會怎麼樣。man 2 rename oldpath and newpath are not on the same
Time of Update: 2018-12-05
轉自: http://www.cnblogs.com/einyboy/archive/2012/09/13/2683015.html方法一:以setarch-1.3-1.src.rpm 軟體包為例(可以到CSDN http://download.csdn.net/source/215173#acomment下載)假設該檔案已經存在於/usr/local/src/下。在該目錄下執行rpmbuild --rebuild --clean
Time of Update: 2018-12-05
在解釋這些區別之前我們先瞭解一下有關linux的背景知識,這個需要大家先認真看完就會對這些區別有更深入的瞭解,對linux也有更深的瞭解。關於System V和BSD風格以及他們與Linux的關係:1、System V 和BSD同出於AT&T實驗室的兩個不同的部門,SystemV是一個Unix的商業化標準,BSD為Unix標準化的Berkeley風格。2、由於Linux是Linus
Time of Update: 2018-12-05
我們知道,在linux下,我們用errno來查看API返回的錯誤碼,並用strerror(errno)來獲得錯誤資訊。而在windows下也有這的錯誤碼,可以用GetLastError來獲得,在windows下,要獲得錯誤碼對應的資訊就沒有linux下那麼方便了。其獲得方式可以參考《windows核心編程》。 但我們也可以用linux下的api來獲得windows下的錯誤資訊,其條件就是把windows下的錯誤碼轉換成linux下相應的錯誤碼,然後再調用strerror(errno)來獲得錯誤資
Time of Update: 2018-12-05
當Linux檔案系統由於人為因素或是系統本身的原因(如使用者不小心冷啟動系統、磁碟關鍵磁軌出錯或機器關閉前沒有來得及把cache中的資料寫入磁碟等)而受到損壞時,都會影響到檔案系統的完整性和正確性。這時,就需要系統管理員進行維護。 對Linux系統中熱門檔案系統的檢查是通過fsck工具來完成的。fsck命令的一般格式如下:QUOTE:fsck [options] file_system