新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話 > Qsys與uC/OS學(xué)習(xí)筆記1:與Qsys的第一次親密接觸

Qsys與uC/OS學(xué)習(xí)筆記1:與Qsys的第一次親密接觸

作者: 時(shí)間:2015-06-07 來(lái)源:網(wǎng)絡(luò) 收藏

  從Quartus II 11.0開始,喜新厭舊的Altera就不厭其煩的炒作SOPC Builder的替代者。記得去年參加他們的研討會(huì)時(shí)就已經(jīng)炒得火熱,如今12.0sp2都已經(jīng)release了,12以后更是完全摒棄了SOPC Buider,如果再不加緊找個(gè)理由上練練手,咱可就要OUT了。

本文引用地址:http://www.butianyuan.cn/article/275302.htm

  正好近期對(duì)非常感興趣,苦于手上沒有一款比較高端的板子用于實(shí)踐。于是通過(guò)層層關(guān)系最終在Altera的大學(xué)計(jì)劃經(jīng)理John處討得一套TerasIC的DE2-115,板載EP4CE115F29C7N器件,豐富的片上資源和外設(shè)足以應(yīng)付各種功能需求。上個(gè)圖,讓各位看官也垂涎三尺。

  

 

  圖1

  廢話就此打住,后面要上電有營(yíng)養(yǎng)的文字。話說(shuō)特權(quán)同學(xué)也是第一次接觸,雖然這兩天抽空惡補(bǔ)了一下Qsys的各種pdf,但畢竟學(xué)海無(wú)涯苦作舟,咱也就多懂點(diǎn)皮毛,提前班門弄斧一下,只是實(shí)實(shí)在在的把自己知道的、明白的、領(lǐng)會(huì)的一一道來(lái),期間肯定有疏漏和不妥之處,甚至也會(huì)帶些疑問(wèn)而來(lái),還請(qǐng)高手不吝惜鍵盤跟帖指點(diǎn)。

  第一步當(dāng)然是新建工程,這等小兒科步驟不詳究,直接步入主題。如圖2所示,兩種方式均可打開Qsys。

  

 

  圖2

  進(jìn)入Qsys后,如圖3所示,界面窗口的布局內(nèi)容多少還有些似曾相識(shí),畢竟還是SOPC Builder一脈相承的,一個(gè)最大的變化時(shí)Qsys tabs的選項(xiàng)要比SOPC Buider多得多,Qsys的更多系統(tǒng)個(gè)性化編輯和設(shè)置也都得益于此了。

  

 

  圖3

  初次打開Qsys,System Content中默認(rèn)已經(jīng)添加了一個(gè)孤零零的CLOCK組件,其他啥也沒有,光桿司令只是個(gè)擺設(shè),啥活干不了。于是乎,咱覺得在Component Library中各種查找,添加了幾個(gè)常用組件,如NIOS II處理器、JTAG UART、定時(shí)器TIMER、8bit輸出PIO、system ID和200KB的片內(nèi)RAM。如圖4所示,這些常用的組件各就各位,基本就可以搭建起一個(gè)最小嵌入式系統(tǒng)了,至少是可以寫代碼在線運(yùn)行程序的。

  

 

  圖4

  不過(guò),看圖4咱可就有點(diǎn)看不懂了,SOPC Builder可不是這樣,Connections應(yīng)該是完全在添加組件過(guò)程中自動(dòng)互聯(lián)上才對(duì)的,而Qsys則一片空白,貌似啥都不連接,別說(shuō),還真這么回事。那么就這么著把,絕對(duì)不可以,人家系統(tǒng)肯定罷工。怎么辦?自己動(dòng)手,豐衣足食!找了相關(guān)資料,都說(shuō)Qsys可以很智能的進(jìn)行組件的互聯(lián),愣是沒找到一個(gè)“智能按鍵”讓他們自動(dòng)互聯(lián),看來(lái)Altera把這項(xiàng)考驗(yàn)真水平的活都下放給最智能的人腦來(lái)干了,能不智能嗎?哈哈,好了,還好特權(quán)同學(xué)底子不差,雖然以前都讓SOPC Buider自個(gè)連接從不干預(yù),但是實(shí)際接口都是牢記于心的,三下五除二便連接成功。如圖5所示,看到小圓圈點(diǎn)點(diǎn)空心實(shí)心就會(huì)變化,實(shí)心代表連接上了。這連接的活可好玩了,一點(diǎn)不比那些年不知道禍害了多少有志青年的“連連看”差多少,那比得是速度,咱比的是準(zhǔn)確。系統(tǒng)的連接其實(shí)也非常簡(jiǎn)單,我們的時(shí)鐘clk和復(fù)位reset都沒有做太復(fù)雜,都是clk_0組件輸出,所以所有的組件都和clk_0的時(shí)鐘復(fù)位連接上就對(duì)了;CPU的數(shù)據(jù)存儲(chǔ)器和代碼存儲(chǔ)器都必須由片內(nèi)RAM來(lái)?yè)?dān)當(dāng),所以nios2_qsys的data_master和instruction_master均與代表onchip_mem的從機(jī)總線s1連接上。而其他作為總線slave的外設(shè)均連接到nios2_qsys的data_master上即可。

  

 

  圖5

  另外,要說(shuō)明的是作為系統(tǒng)與外部連接的接口不像SOPC Buider一樣直接引出了,需要設(shè)計(jì)者特別設(shè)置一下。如圖6所示,選擇Export列的屬性為*_external connection,然后該接口前面會(huì)出現(xiàn)一個(gè)export的圖標(biāo)。

  

 

  圖6

  接著我們還要雙擊打開nios2_qsys組件,將其Reset Vector和Exception Vector均設(shè)為onchip_mem。如圖7所示。

  

 

  圖7

  就此,一個(gè)漂亮的測(cè)試系統(tǒng)搭建完畢,后面的事情就是分配地址、中斷優(yōu)先級(jí)等,這個(gè)可以如同SOPC Builder一樣使用菜單欄上的自動(dòng)分別選項(xiàng)一鍵分配。特權(quán)同學(xué)就常常這么干,咱對(duì)地址還真沒講究,中斷優(yōu)先級(jí)有時(shí)還可以根據(jù)需要調(diào)整一下。

  前面提到了Qsys tabs是一大特色,這里不一一細(xì)說(shuō),偷懶貼幾張圖。大家自己使用的時(shí)候可以慢慢體味。如圖8,Address Map對(duì)地址的管理一目了然,而且對(duì)于不同的Master可以有不同的地址空間映射。

  

 

  圖8

  如圖9所示,System Inspector中羅列所有的信號(hào)接口以及相關(guān)屬性參數(shù),甚至可以在此處進(jìn)行修改。

  

 

  圖9

  如圖10所示,HDL Example中直接給出了當(dāng)前系統(tǒng)的例化模板,直接復(fù)制到工程頂層模塊后進(jìn)行修改即可,這比之前專門要到工程目錄下找相關(guān)文件查看要方便得多。

  

 

  圖10

  最后,如圖11所示,Generation里可以選擇系統(tǒng)仿真、綜合以及各種輸出的相關(guān)設(shè)置,最后點(diǎn)擊右下角的Generate即可啟動(dòng)當(dāng)前系統(tǒng)的生成。大家可別忘了在Output Directory中設(shè)置后系統(tǒng)輸出路徑。

  

 

  圖11



關(guān)鍵詞: Qsys uC/OS

評(píng)論


相關(guān)推薦

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

關(guān)閉