找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2486|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

Embedded OS 移植筆記by 小ARM菜菜

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:82781 發(fā)表于 2015-6-13 16:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

  剛剛移植了一個(gè)新的操作系統(tǒng)運(yùn)行,總起來說基本上系統(tǒng)大同小異,不一樣的是代碼的精簡程度和工作方式,很小的系統(tǒng)內(nèi)核就不要奢望他封裝成內(nèi)核對(duì)象了,因?yàn)閷?duì)象勢(shì)必會(huì)消耗過多的RAM和ROM,所以基本上很小的內(nèi)核大部分用線程隊(duì)列的方式來搞。大家都在一個(gè)線程的隊(duì)列中,當(dāng)然內(nèi)核再小也需要TCB控制,再小也需要內(nèi)存,IPC通信一個(gè)不少,值得注意的是,任務(wù)是有限的,因?yàn)樗\(yùn)行的系統(tǒng)都是資源非常局促,緊張之流!目前為止。我裸系統(tǒng)編譯完畢后ROM用量僅僅3.7K,RAM用量1.8K顯然這真是要命啊,超級(jí)小!并且這包括了所有的系統(tǒng)提供的微庫文件,真是要命啊!。而這一切,僅僅是個(gè)開始!適合對(duì)于小芯片chip os解決方案!





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:82781 發(fā)表于 2015-6-13 16:15 | 只看該作者
           前些日子看C++注意到內(nèi)聯(lián)函數(shù)inline,其實(shí)在嵌入式C開發(fā)中也是支持的,只不過編譯器有封裝了一層,這是內(nèi)聯(lián)函數(shù),盡量的短使用頻繁,的function可以inline聲明他,不過現(xiàn)在編譯器已經(jīng)具有優(yōu)化功能了,過于冗長的也會(huì)主動(dòng)封裝成普通函數(shù),
        信號(hào)量的概念其實(shí)不難理解,重要的是記住他的初始化的值,假設(shè)有一個(gè)任務(wù)等待那么他的值初始化應(yīng)該=1,N個(gè)應(yīng)該等于N,得到了信號(hào)量就得到了進(jìn)入線程的鑰匙,等不到就超時(shí)掛起或者掛起一直永遠(yuǎn)等待。使用起來就變得簡單了。IPC是基本相同的,舉一反三的事情了。

      在面向?qū)ο蟮膬?nèi)核編程里面上層已經(jīng)把底層的硬件完全抽象了,那么對(duì)于底層的硬件來說他們的方法和屬性,對(duì)象要封裝吧,然而不可能把所有的方法都封裝到對(duì)象里,但是上層還不希望直接看到對(duì)硬件流的操作,那么怎么解決這個(gè)問題呢? 顯然指向函數(shù)的指針就成了一個(gè)好的解決辦法,這樣上層操作系統(tǒng)的處理就是加載一個(gè)對(duì)象中的方法,而硬件卻執(zhí)行了一次函數(shù)調(diào)用,操作了硬件,哈哈哈,很好的結(jié)局。

     最后說下網(wǎng)絡(luò)流操作,網(wǎng)絡(luò)組件靠硬件中斷觸發(fā),然后對(duì)數(shù)據(jù)包進(jìn)行檢測(cè),是否有效載荷,如果有效,那么給操作系統(tǒng)發(fā)送郵箱,系統(tǒng)建立一個(gè)靜態(tài)線程,等待,喚醒后執(zhí)行對(duì)緩存的加載任務(wù),把有效載荷加載到動(dòng)態(tài)內(nèi)存分配的當(dāng)前緩存中去,最后送入?yún)f(xié)議棧中,至此硬件的任務(wù)完成,而上層則是通過socket完成。這樣上層和底層通過棧連接起來。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表