新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 低固存嵌入式系統(tǒng)的uClinux小型化方法

        低固存嵌入式系統(tǒng)的uClinux小型化方法

        作者: 時間:2011-06-21 來源:網(wǎng)絡 收藏
        2 內(nèi)核與應用程序的一體化

        本文引用地址:http://www.104case.com/article/150585.htm

          的內(nèi)核有兩種可選的運行方式:Flash運行方式和 運行方式。Flash運行方式直接在Flash上運行,是很多采用的。RAM運行方式運行速度可能更快(RAM 的存取速率要比Flash高),所需的內(nèi)存也較少,同時這也是標準LinuX采用的啟動方式。

          不管采用哪種運行方式,沒有文件必須要實現(xiàn)內(nèi)核與應用程序的一體化,一體化可以通過創(chuàng)建進程的方式來實現(xiàn)。創(chuàng)建進程可以采用內(nèi)核函數(shù)do_fork()和do_execve(),也可以仍然用系統(tǒng)調(diào)用fork()和execve(),因為沒有MMU的微控制器,內(nèi)核的運行其實是與應用程序一樣的。但在這里execve()是經(jīng)過上面修改過的,去掉了其裝載可執(zhí)行文件的能力后,可采用直接跳轉(zhuǎn)到可執(zhí)行文件入口點的,運行應用程序。創(chuàng)建一個所有應用程序的跳轉(zhuǎn)表:

          struct App_table{

          Int(*App_main)();//主程序

          int(*LCD_window)();//A機操作界面管理程序

          int(*AD)();//A/D采樣程序

          ……}

          然后在init()末尾添加如下代碼:

          if(fork()==0) execve(App_table->App_main);

          else panic(No App_main found.);

          3 新型文件系統(tǒng)(ReFS)開發(fā)

          在某些系統(tǒng)中要保存的文件大都是一條條操作記錄或是系統(tǒng)警告提示信息,有固定的數(shù)據(jù)格式和長度,就好像數(shù)據(jù)庫里的記錄。而且針對這種簡單文件系統(tǒng)的操作可能非常簡單,所以借鑒EXT2和JFFS2等其它文件系統(tǒng)的設計開發(fā)了一種新的文件系統(tǒng),文中將之命名為記錄型文件系統(tǒng)(ReFS),其存儲物理結(jié)構(gòu)如圖3所示。

          

        文件系統(tǒng)ReFS 結(jié)構(gòu)圖

          數(shù)據(jù)塊的大小是記錄大小的n倍,是數(shù)據(jù)分配的最小單位,可以事先給不同用戶分配不同的的空間,也可以限制用戶使用的存儲空間,然后動態(tài)地分配實際物理塊。一個節(jié)點代表一個文件,文件是不同用戶操作記錄的一個集合,可由多個數(shù)據(jù)塊構(gòu)成。由于空間有限,可將整個空問構(gòu)成一個循環(huán)鏈表,插入和刪除的動作分別在表頭和表尾進行。隨著時間增長和記錄條數(shù)的增加,整個存儲空問會飽和,后面存進的記錄會覆蓋前面的記錄,但數(shù)據(jù)在被覆蓋前早巳失去應用價值,所以只需對鏈表進行插入、刪除、查找等簡單操作,就可以輕松實現(xiàn)對陵文件系統(tǒng)的管理。待整個文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和操作函數(shù)完成后,把該文件系統(tǒng)加進中去。該步驟主要是構(gòu)造超級塊、節(jié)點、文件在內(nèi)存中的結(jié)構(gòu),然后寫出相應的超級塊、節(jié)點、文件操作函數(shù)集super_operations,inode_operations,file_operations。再編寫read_super函數(shù)和注冊函數(shù)init_ReFS_fs,最后在Linux的初始例程filesystem_setup()函數(shù)中添加:

          #ifdef CONFIG_ReFS_FS

          init_ReFS_fs();

          #endif

          4 結(jié)束語

          針對低固存系統(tǒng),可以通過以上的措施,恨據(jù)具體的嵌入式應用定制uClinux,同時增加了系統(tǒng)的可移植性、易擴展性。但由于對原系統(tǒng)的某些功能作了裁剪、刪除,在一定程度上影響了uClinux系統(tǒng)原有的可擴展性和移植性、不過這也是大小與移植性折中后的結(jié)果。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        linux相關(guān)文章:linux教程



        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宿迁市| 曲松县| 河曲县| 远安县| 郸城县| 互助| 吉安县| 景谷| 方山县| 泗阳县| 缙云县| 自治县| 财经| 玛纳斯县| 松阳县| 兖州市| 临沂市| 延津县| 信阳市| 天台县| 泾源县| 旬阳县| 武穴市| 建始县| 临汾市| 肇庆市| 庄河市| 曲靖市| 射洪县| 永清县| 南木林县| 南乐县| 普洱| 太谷县| 荆州市| 石棉县| 永寿县| 麻栗坡县| 定襄县| 和静县| 伊吾县|