USB通訊入門(一)遇到的第一個問題是Keil編譯器出錯 Error: failed to execute 'C:\Keil\C51\BIN\C51.EXE'

 因爲項目之前採用的是USB轉SPI與下位機通信,另外電機控制是採用CANopen協議,對於項目的要求來說,速度還是太慢了;在參考了別人的設計方案之後,所以最近打算把方案更改一下,採用USB通訊的方式,其中所用的芯片是Cypress 68013A。我之前沒有接觸過USB通訊,所以得從零基礎開始學習USB通訊。

在其他基礎問題解決了之後,第一步就是學習瞭解Bulkloop示例,通過這個示例可以大致瞭解USB通訊的基礎原理。但是我用Keil uVision 4打開Bulkloop的工程文件,在重生成的時候,報錯了,Error: failed to execute 'C:\Keil\C51\BIN\C51.EXE'。但很奇怪的是,我打開另外一個開發包中的Bulkloop工程,重生成卻沒有報錯。

一開始我以爲是Keil版本的問題,因爲Bulkloop工程的後綴是.Uv2,而我把工程保存之後,後綴名變爲.uvproj。後面發現不是這個原因,Uv2只是Keil4之前的版本工程文件的後綴,而uvproj是Keil4的版本工程文件的後綴。接下來找到一個解決方案是:找到Keil安裝目錄下的TOOLS.INI文件,把[C51]節下面的PATH="C:\Keil\C51\BIN\C51.EXE"改爲當前安裝目錄,如下圖所示。

但我打開TOOLS.INI文件,[C51]節下的PATH路徑已經是正確的安裝路徑,並不是大家所說的路徑錯誤;

接下來繼續找問題,發現Components,Environment and Books對話框中有一個Folders/Extensions選項卡,其中在Development Tool Folders中,我沒有勾選Use Settings from TOOLS.INI, 所以導致前面的TOOLS.INI文件雖然正確,但沒有被使用。而下面的BIN,INC,LIB等項裏面,正是報錯的C:\Keil\C51\BIN\ ,C:\Keil\C51\INC, 以及 C:\Keil\C51\LIB。把這三個選項都修改成Keil的安裝目錄,我的是D:\Program Files(x86)\Keil\C51\BIN\, D:\Program Files(x86)\Keil\C51\INC\以及D:\Program Files(x86)\Keil\C51\LIB\後,再重生成工程,就要以正常生成.hex 文件而不報錯了。

此外,在INC以及LIB框中,還可以繼續添加其他包含目錄或者庫目錄,從而讓Keil編譯器可以找到想要的頭文件以及庫文件。

上面的這個問題對於很多嵌入式領域的人來說是非常簡單的問題,而我只是一個剛入門的新手,也算是一點學習吧,望各位大牛們批評指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章