久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5326|回復: 0
打印 上一主題 下一主題
收起左側

在Eclipse下編譯Keil MDK工程

[復制鏈接]
跳轉到指定樓層
樓主
ID:140343 發表于 2016-9-25 11:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   最近業余時間在玩下ARM7, 使用Keil uVision集成開發環境, 有時真的受不了, 編輯器的代碼提示/高亮功能幾乎為0, 代碼基本是要一個一個字母往里敲! 想想在的VS, Eclipse等下開發多舒服, 都什么年代了, Keil竟然還不升級下它的代碼編輯器!


  后來發現MDK里有個Eclipse插件, 想想以后可以在Eclipse for C/C++下寫代碼了--狂喜. 于是, 趕緊安裝....我暈, 真是坑爹啊, 這插件只能導入/調試Keil MDK工程, 沒看到哪里可以編譯啊? ...看了下此插件的說明文檔, 確實是沒有提到如何在Eclipse下建立/編譯MDK工程, 確認已被坑...
  還沒心死, 到網上找呀找, 找呀找, 有人說要用Windows下的交叉編譯器, 看了一下, 看不懂, 很煩...無果. 自己又折騰了下, 使用Makefile+Keil MDK自帶的編譯器可以, 但使用Eclipse CDT自動產生的Makefile文件又不行, Keil MDK編譯器很多選項都不支持...總不能要我每次都自己寫Makefile吧? 對Makefile又不熟, 不爽啊...
  無路可走了, 為了使以后寫代碼輕松點, 決定自己寫一個Eclipse編譯輔助工具--KeilBuilder. 它實現的功能是: 搜索工程目錄里的所有源文件, 然后調用Keil MDK自帶的編譯器, 鏈接器等編譯工程, 最后生成期望的Hex文件. 然后再用Eclipse插件下載或調試. 試了一下, 效果不錯. 如下圖: (注: 誰有更好的方法請分享下吧...)
  下面的此工具在Eclipse下的具體使用方法:
1. 把KeilBuilder.exe復制到MDK的編譯器目錄下, 一般為: C:\Keil\ARM\BIN40下, 這要看你的MDK安裝在哪了.
2. 新建一個C Project 工程, 并選擇Cross GCC交叉編譯工具為本工程編譯工具.
    .通過菜單File -> new -> C Project 新建一個空的C工程. 在彈出的對話框中如下圖, 注意要選擇"Cross GCC"工具鏈:

         
  3. 為新建的工程導入Keil工程或僅導入源文件. 如下圖:
        
  4. 設置Eclipse工程交叉編譯環境.
    .在左邊的"Porject Explorer"窗口內鼠標右鍵單擊工程名, 選擇最后的菜單項"Properties"項.
    .在C/C++ Build -> Settings界面中, 設置"Configuration"為"[ All configurations ]"; 設置"Cross Setttings"的"Path"即交叉工具鏈路徑為KeilBuilder所有的目錄, 如C:\Keil\ARM\BIN40. 如下圖:

   
    .在"Cross GCC Compiler"的"Command"下填入"KeilBuilder -no", 表示什么也不做; 另外的"Cross GCC Linker"及"Cross GCC Assembler"的"Command"中也設置為同值. 此設置為防Eclipse對不存在的GCC工具的報警, 如下圖:

    .在C/C++ Build 界面中, Builder Settings 中去掉"Use default build command"上的勾, 并在"Build command"中填入"KeilBuilder.exe -d xxxx -e". 基中xxx為工程根目錄路徑, "-d"表示設置KeilBuilder的工程路徑, "-e"表示在編譯時自動對Eclipse工程進行設置, 目前僅設置"C/C++ Build" -> "Settings" -> "Cross GCC Compiler" -> “Symbols”和”Includes”以及”Cross GCC Assmebler” -> “General”項. 如下圖:

    .在C/C++ Build 界面中的"Behaviour"選項卡中, 在"Build(Incremental build)"中填入"-s"表示安靜編譯; 在"Clean"中填入"-c"表示清理工程. 如下圖:
    .在C/C++ Build 中的 "Discovery Options" 中去掉 "Enable generate scanner info command"選項. 如下圖:

    .不用設置預編譯宏或者Includes選項, 因為KeilBuilder會自動幫忙加進去. 所以, 有時候你看到代碼還有一大堆的錯誤時, 編譯一次后, 刷新工程(右鍵工程名 -> "Refresh")就木有錯誤鳥.
  5. 到此, 可以編譯你的工程了. 通過菜單項"Project" -> "Build All"編譯工程, 或"Project" -> "Clean..."清理工程. 編譯不通過或得到不正確Hex文件的繼續往下看.如下圖:

  6. 在Eclipse中添加一個外部工具, 這樣可以通過Eclipse菜單項運行KeilBuilder, 方便.
    .在Eclipse菜單中選擇Run -> External Tools -> External Tools Configurations...
    .在彈出的對話框中雙擊"Program" 增加一個外部工具.
    .在Name中填入"KeilBuilder".
    .在"Main"選項卡中, Location通過"Browse File System..." 選擇KeilBuilder程序, 如: C:\Keil\ARM\BIN40\KeilBuilder.exe; 在Working Directory中填入KeilBuilder所在的目錄, 如C:\Keil\ARM\BIN40.
    .在"Build"選項卡中, 去掉"Build before launch"上的勾.
    .最后單擊"Apply" -> "Run"完成添加, 并運行KeilBuilder工具.
    此后你就可以通過菜單Run -> External Tools -> KeilBuilder 來快速運行KeilBuilder工具了. 如下2圖:
  7. 經過前面4步的設置, 你的工程編譯很可能會編譯不通過, 或者編譯出來的Hex文件下載不正確. 那是因為一些編譯器/鏈接器選項你還沒有配置.
    這時, 你可以通過菜單Run -> External Tools -> KeilBuilder來運行KeilBuilder工具, 通過界面來設置這些參數. 或者也可以直接用記事本打開工程目錄中的"cts.ini"(如果工程目錄中不存在此文件, 請轉到KeilBuilder所在的目錄下的"cts.ini", 如果KeilBuilder所在目錄下也沒有, 那么請雙擊運行下KeilBuilder程序, "cts.ini"就會自動生成)對參數進行修改.
    注意, 在KeilBuilder界面上設置參數時, 必須選擇好自己的工程目錄, 如果沒有選擇工程目錄, 設置的結果會保存到KeilBuilder所在的目錄下的"cts.ini"文件中. KeilBuilder在首次運行時, 會在其所在目錄下生成cts.ini文件并設置參數為默認值. KeilBuilder在每次編譯一個工程時, 如果該工程目錄下發現"cts.ini", 就使用工程目錄下的"cts.ini"; 如果沒有發現"cts.ini"文件, 則把KeilBuilder所在目錄下的"cts.ini"文件復制一份到工程目錄下, 然后再編譯.
    關于"cts.ini"文件中的這些參數, 它對應于Keil MDK環境中的ASM編譯器/C編譯器/Linker選項. 因為時間問題, 在KeilBuilder中并未實現(以后有空再搞吧)類似于Keil uVision中的選項式配置. 如果熟悉這些參數最好, 不熟的話可以先在Keil uVision中配置好, 再對應添加到"cts.ini"中.
    在"cts.ini"文件中的"ASM=" 后面的內容對應于Keil uVision工程選項中的"Asm"選項.
    在"cts.ini"文件中的"CC=" 后面的內容對應于Keil uVision工程選項中的"C/C++"選項.
    在"cts.ini"文件中的"LNK=" 后面的內容對應于Keil uVision工程選項中的"Linker"選項.
  8. 設置"cts.ini"文件中的編譯選項確實不是一般人能搞定. 我也不懂(誰懂的做個說明分享下吧, 可以的話還能集成為UI, 更方便). 因為人懶, 不想去深究這些編譯(鏈接)器選項, 于是想到了個折中的辦法: 通過Keil uVision來設置好這些參數并編譯工程, 然后把它實時的編譯選項顯示出來以供參考! 這樣當編譯選項無法搞定時, 就把整個工程交給keil uVision來編譯一次, 然后參考實時獲取的參數再對Eclipse工程的"cts.ini"文件做相應的修改就OK了.
    在keil uVision中捕獲它的編譯選項, 需要做如下的設置. 在工程屬性"Options for Target xxxx"的"User"選項卡中 設置keil編譯后運行”KeilBuilder.exe -p”. 表示捕獲keil uVision編譯選項, 如下圖:

           
        下圖為KeilBuiler捕獲到的Keil uVision工程編譯/鏈接參數:

  9. 不多說了, 編譯, 下載, 調試. 關于如何使用MDK Plugin for Eclipse 請參數它的幫助文檔吧. 祝愉快!
  最后希望多多交流.

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产欧美一区二区 | 国产精品一区二区久久 | 欧美亚洲国产日韩 | 久久精品免费一区二区三 | 亚洲少妇综合网 | 免费同性女女aaa免费网站 | 国产精品99久久久精品免费观看 | 精品久久一区 | 日韩在线观看网站 | 国产精品色婷婷久久58 | 成人在线观看网址 | 91porn成人精品 | av无遮挡 | 亚洲资源站 | 久草新在线 | a视频在线观看 | 欧美极品在线视频 | av在线播放网址 | 亚洲97| 欧美三区视频 | 亚洲深夜福利 | 日本精品一区二区在线观看 | 精品毛片| 99国产视频 | 精品成人佐山爱一区二区 | 亚洲区在线 | 亚洲精品天堂 | 国产激情视频在线观看 | 在线视频 亚洲 | 欧美日韩综合一区 | 色片在线观看 | 日韩一区二区三区av | 国内精品99 | 久久国产精品网 | 中文字幕 欧美 日韩 | 欧美日韩在线视频一区 | 亚洲永久在线 | 99久热| 欧美一级欧美一级在线播放 | 天堂在线中文 | 国产1区|