中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 智能命令行設(shè)計(jì)及其在SOPC系統(tǒng)中的應(yīng)用

        智能命令行設(shè)計(jì)及其在SOPC系統(tǒng)中的應(yīng)用

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

        5 字符輸入
        行從標(biāo)準(zhǔn)輸入設(shè)備中獲取字符。行只接受可打印的字符和特定的控制字符。如果收到了回車(chē)或者換行字符,代表用戶(hù)完成了輸入,就解析命令。解析命令前,去掉多余的空格符(0x20),即不允許有連續(xù)的兩個(gè)或多個(gè)空格符存在,命令的最后也不能有空格符。

        本文引用地址:http://www.antipu.com.cn/article/150890.htm


        6 參數(shù)解析
        命令行模塊要從用戶(hù)輸入的字符串中解析出命令名和參數(shù)。為命令提供與DOS和Linux類(lèi)似的兩個(gè)參數(shù),argc和argv。argc表示參數(shù)的個(gè)數(shù);argv是字符串指針的數(shù)組,最多10個(gè)字符串。argv[0]是第一個(gè)參數(shù),argv[1]是第二個(gè)參數(shù),如此類(lèi)推。


        7 函數(shù)解析
        在代碼中使用SHELL_CMD_DECL創(chuàng)建了命令列表,使用工具創(chuàng)建了自動(dòng)命令列表。這兩個(gè)表實(shí)際上都是數(shù)據(jù)結(jié)構(gòu)ncommand_t的數(shù)組,其中有命令名和函數(shù)地址的信息。解析函數(shù)實(shí)際上就是根據(jù)在這兩個(gè)數(shù)組中依次比較函數(shù)名。如果用戶(hù)輸入的命令名和數(shù)組中的命令名一致,就使用對(duì)應(yīng)的函數(shù)地址。


        8 命令執(zhí)行
        得到函數(shù)地址后,就可以執(zhí)行命令對(duì)應(yīng)的函數(shù)。對(duì)于主動(dòng)創(chuàng)建的命令,使用argc和argv作為參數(shù)。對(duì)于自動(dòng)命令,命令行模塊先嘗試將原始參數(shù)轉(zhuǎn)換無(wú)符號(hào)整數(shù)。如果成功,使用無(wú)符號(hào)整數(shù)作為參數(shù);如果不成功,則將原始參數(shù)的地址作為參數(shù),實(shí)際上是一個(gè)字符串。

        命令
        完成總體后,就可以逐個(gè)添加開(kāi)發(fā)需要的命令了。


        ● 幫助命令用于顯示所有命令名用法。


        ● IO命令用來(lái)訪問(wèn)輸入輸出設(shè)備的寄存器,可以實(shí)現(xiàn)對(duì)外部設(shè)備的控制。


        ● 存儲(chǔ)器命令用來(lái)顯示、修改存儲(chǔ)器的值。最基本的包括:dump命令顯示指定位置的內(nèi)存的值;modify命令用來(lái)修改指定內(nèi)存單元的值。


        ● 用戶(hù)在使用過(guò)程中,會(huì)使用很多命令。能夠查詢(xún)歷史命令、循環(huán)執(zhí)行歷史命令將給用戶(hù)帶來(lái)很多方便。因此筆者實(shí)現(xiàn)了三條命令。history_show用來(lái)顯示所有已經(jīng)使用了的命令;history_del用來(lái)刪除指定的歷史命令;history_exec用來(lái)執(zhí)行指定的歷史命令。

        優(yōu)化處理
        Altera提供了簡(jiǎn)化版的輸出函數(shù)alt_printf來(lái)替代printf,降低了嵌入式的開(kāi)銷(xiāo),筆者在命令行中也支持這個(gè)這個(gè)函數(shù)。命令行的代碼中,只調(diào)用SHELL_PRINT;在頭文件中,根據(jù)用戶(hù)設(shè)置,SHELL_PRINT使用標(biāo)準(zhǔn)的printf或者簡(jiǎn)化的alt_printf。如果使用簡(jiǎn)化的alt_printf,這個(gè)命令行占用的內(nèi)存小于14KB。

        中的
        Altera為開(kāi)發(fā)提供的集成開(kāi)發(fā)環(huán)境NIOS II IDE附帶了多個(gè)軟件實(shí)例。在使用這些軟件實(shí)例時(shí),用戶(hù)只需要選擇模塊,完全不用新編代碼,非常簡(jiǎn)單。


        命令行模塊也可以作為NIOS II IDE的一個(gè)實(shí)例。先在“nios2edsexamplessoftware”目錄下為命令行創(chuàng)建一個(gè)子目錄shell_standard,再以其他軟件實(shí)例的template.xml為模板創(chuàng)為命令行建一個(gè)template.xml文件,然后復(fù)制命令行模塊的所有文件到這個(gè)目錄中。這樣,用戶(hù)在創(chuàng)建工程時(shí),直接選中命令行模板,就可以使用命令行模塊了。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉