新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 搭建使用 RTX51-Tiny 的 C51 Keil 項目環境

        搭建使用 RTX51-Tiny 的 C51 Keil 項目環境

        作者: 時間:2016-11-28 來源:網絡 收藏

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

        選擇芯片庫,我這里用的是 STC:

        Keil 默認的芯片庫里面,是沒有 STC 的芯片的,可以按照下面的步驟將 STC 的芯片庫加入到 keil 中:

        • 從宏晶官網下載 UV3.CDB
        • 將UV3.CDB改名為STC.CDB,拷貝到Keil安裝目錄的UV4子目錄下
        • 修改Keil安裝目錄下的TOOLS.ini文件,在[C51]上方添加:CDB0=UV4STC.CDB("STC Chip")
        • 建立新項目,然后就可以選擇對應的芯片數據庫了

        (個人筆記:這部分完全可以用最新版的STC-ISP,選項卡“keil仿真設置”,點“添加STC仿真驅動 到Keil中添加型號和頭文件到keil中”,就行了,簡單易行)

        然后,選擇芯片:

        問你是否需要自動包含啟動代碼,選“否”(除非你要改程序起始地址什么的):

        改改 Target 的名字,看上去好看些,然后設置項目屬性:

        寫好晶振頻率并選擇“RTX-51 Tiny”作為操作系統,這樣 Keil 會自動將 lib 文件編譯到輸出中(Memory Model 用 Small 比較好,免得每次聲明變量都寫 data 修飾):

        然后選擇 output、listing 目錄到前面建立好的目錄結構:

        然后,忽略調用警告信息(這個警告會提醒你哪些函數定義了但是未被調用,很討厭!):

        設置好調試選項(STC12A5C60S2 支持 ISD-51 進行在線調試,不過,實際用下來用處不大,外圍硬件模塊根本不會跟著斷點等你,還是先用軟件模擬調試好了再說):

        接下來,將常用的庫文件拖到 lib 目錄中:

        • ISD51.h,ISD51.A51 用于在線調試
          和串口 0 沖突,慎用
        • stc12c51a.h 單片機自帶的頭文件
        • Conf_tny.A51
          RTX-51 Tiny 的配置程序

        Conf_tny.A51 還是需要做點兒修改的:

        • INT_CLOCK,定義每個計時中斷對應的時鐘周期數,默認 10000,我改成 1000 了 ;)
          這個值會影響 os_wait 第二個參數的長短。例如,ow_wait(K_TMO, 5, 0) 等待 5 個計時周期,也就是等待 5000 個時鐘周期。
        • TIMESHARING,每個任務分到的時鐘中斷數量。默認是 5。
          這樣,每個任務都會被分配 5000 個時鐘周期的任務時間,到期以后,任務將被掛起,其它處于 READY 狀態的任務會運行。
          如果這個值是 0,那么,Round Robin 的任務輪詢算法會停止,必須你自己手動 os_send_signal 或者 os_switch_task 來切換任務。某些時候,這樣會提高實時性。
        • RAMTOP。指定了可用 RAM 的頂部地址,默認是 0FFH,即 256 字節 RAM。
          就 STC 這塊芯片來說,這樣的默認設置在任務代碼非常短小時沒有問題,但是,如果任務代碼較長,建議還是改小點兒,比如 0CFH。原因不明,但可能是因為高 128 字節 RAM 的直接存取方式是讀寫的特殊寄存器,我發現會和 RTX-51 Tiny 沖突,產生error 65 access violation at 0x3480之類的運行錯誤。

        敲一段代碼先跑跑(軟件調試,Ctrl+F5):

        可以看見監視窗口里面,c0, c1 亂跳:

        再來一段代碼,看看 Keil 的高級功能(邏輯分析):

        現在可以看波形了:

        環境搞定,記得提交到配置庫。下面就可以開始移植代碼到新的基于 RTX-51 Tiny 的項目中了。



        上一頁 1 2 下一頁

        關鍵詞: RTX51-TinyC51Keil項目環

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 年辖:市辖区| 舒城县| 息烽县| 崇明县| 灌南县| 资中县| 读书| 房山区| 顺昌县| 柳州市| 南川市| 府谷县| 武鸣县| 长沙县| 四川省| 昌邑市| 定襄县| 乐东| 阿勒泰市| 宁南县| 丰县| 台中市| 佛冈县| 河北区| 青州市| 同仁县| 缙云县| 临夏市| 樟树市| 巧家县| 乌鲁木齐市| 饶平县| 乃东县| 石景山区| 香格里拉县| 北宁市| 南丰县| 利津县| 独山县| 正宁县| 科技|