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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 12389|回復(fù): 0
收起左側(cè)

k60程序J-link燒寫和IAR使用指南

[復(fù)制鏈接]
ID:374198 發(fā)表于 2018-7-18 17:09 | 顯示全部樓層 |閱讀模式
程序燒寫和程序使用指南

1程序燒寫指南
1.1前言

程序燒寫指南旨在介紹:使用 IAR Embedded Workbench 打開工程項(xiàng)目, 以及使用 J-link 燒寫器將可執(zhí)行代碼燒寫到 K60 中。

1.2打開工作空間

1.2.1  eww簡(jiǎn)介


Figure 1: workspace

eww 是 Embedded Workbench Workspace 的英文縮寫。例如,SmartCar.eww 就是一個(gè)工作空間,工作空間基本等同于一個(gè)項(xiàng)目,在 SmartCar.eww 中包含 了與本次比賽有關(guān)的頭文件和源文件。使用工作空間能方便我們管理這些數(shù)目 龐大的文件,如圖1。




Figure 2: 打開文件 1





Figure 3: 打開文件 2



1.2.2  打開 eww文件

打開 IAR,點(diǎn)擊左上角 file » Open Workspace, 如圖2所示,彈出文件選擇對(duì) 話框,選擇自己的 SmartCar 解壓路徑,向下找到.../project/SmartCar/iar/Smartcar.eww,選中后打開,如圖3所示。


1.3使用 J-link 燒寫程序

1.3.1  J-linkJTAG




Figure 4: LQ-miniLINK

圖4為本次比賽提供的仿真器。JTAG(JointTestActionGroup,聯(lián)合測(cè)試行 動(dòng)組) 是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議 (IEEE1149.1 兼容)。K60 的處理器是 ARM-CortexM4,調(diào)試 ARM,就要遵循 ARM 的調(diào)試接口協(xié)議,JTAG 就是其中的一 種。

J-Link 是 SEGGER 公司為支持仿真 ARM 內(nèi)核芯片推出的 JTAG 仿真器。 J-link 直接接收來(lái)自調(diào)試命令,進(jìn)行 RDI->JTAG 協(xié)議的轉(zhuǎn)換,然后與 K60 通信,這樣燒寫和調(diào)試速度都要快些。






Figure 5: 對(duì)              Figure 6: 錯(cuò)

1.3.2  連接至單片機(jī) 使用時(shí)一定要注意:連接方向。圖5是正確的連接方向,圖6是正確的連接

方向。如果連接方向反了,不但燒寫不了程序,還有可能損壞單片機(jī)、燒寫器
甚至電腦。



1.3.3  設(shè)置 eww屬性


Figure 7: 設(shè)置屬性


打開 eww 文件,如圖7,單擊選中 SmartCar..., 右鍵,選擇 option, 彈出

options 對(duì)話框。單擊 Debugger,在 Setup 下的 Driver 選擇 J-Link/J-Trace, 右下角 ok 確定,如圖8所示。默認(rèn)情況下,SmartCar.eww 已經(jīng)將這些設(shè)置好了,不需要另外設(shè)置。保險(xiǎn)起見,可以檢測(cè)以下。






Figure 8: options1



1.3.4  燒寫

Figure 9: 燒寫



將 k60 通過 mini link 連接到電腦 USB,并且設(shè)置好屬性后,只需要點(diǎn)擊

工具欄的 Download and Debug 按鈕,程序就將自動(dòng)燒寫到 k60 中,如圖9所 示。燒寫完成后,彈出界面如圖10所示。






Figure 10: 燒寫完成


這里的程序燒寫是以官方程序?yàn)槔L峁┙o選手們的官方程序沒有錯(cuò)誤, 所以可以正常燒寫;當(dāng)選手自己的程序按相同的方法進(jìn)行燒寫后,如果存在錯(cuò) 誤,燒寫過程會(huì)中斷,并會(huì)出現(xiàn)錯(cuò)誤信息,需要修改錯(cuò)誤才能燒寫成功。

關(guān)于如何鑒別錯(cuò)誤信息,或是燒寫成功后如何控制程序執(zhí)行情況,請(qǐng)選手 們閱讀文檔《5-3 硬件系統(tǒng)調(diào)試方法》的第二部分“軟件 BUG”。



2程序使用指南

2.1前言

這一部分的內(nèi)容不光要告訴大家如何使用、管理、修改官方代碼,同時(shí)要 讓大家了解如何去完成一個(gè)較大的 C 語(yǔ)言工程。


2.2什么是工程?

工程是一個(gè)總體的概念,在 C 語(yǔ)言中,如果要開發(fā)一個(gè)完整的系統(tǒng),就必 須要建工程,因?yàn)橥暾南到y(tǒng)包括各種各樣的文件和界面設(shè)計(jì),單單一個(gè)文件





是開發(fā)不出大型的系統(tǒng)的。比如這次智能車大賽的官方代碼中,就有大量的.h

和.c 文件,同時(shí)還有一個(gè)用來(lái)表示引腳使用的 txt 文件,它們都在這個(gè)工程的 目錄下。

大家如果仔細(xì)查看工程目錄下的文件,會(huì)發(fā)現(xiàn)只有一部分文件是你寫的, 還有很大一部分文件并不知道有什么用。這些文件就是由編譯器生成的,不同 的編譯器有著不同的規(guī)則,包括軟件運(yùn)行所必須配置文件、編譯運(yùn)行后生成的 二進(jìn)制文件和可執(zhí)行文件等等。

現(xiàn)在回過頭來(lái)理解我們常說的新建工程和新建文件:新建工程是建立一個(gè) 完整的工程目錄,里面包含很多資源(文件,圖片等等。文件包含.c,.h 還有編 譯后的二進(jìn)制文件),至于新建文件就是在在工程下面建立單獨(dú)文件可以是.c 或 者.h 文件等等。

而編譯器的作用一是方便管理、打開、修改、添加這些工程里的文件,二 是用這些工程里的文件編譯出最終需要的東西(VS、code blocks 就可以生成可 執(zhí)行性文件.exe, 而 IAR 等集成開發(fā)環(huán)境就可以將代碼編譯下載到單片機(jī)中)。


2.3如何寫一個(gè)較大的工程

硬件系統(tǒng)設(shè)計(jì)除了硬件部分的畫板子、焊接,軟件部分也是一個(gè)很困難的 部分。為了實(shí)現(xiàn)既定的功能,我們不得不寫一大堆代碼。代碼怎么寫是個(gè)人的 自由,你要是把所有的代碼寫在一個(gè)文件里也可以,但是要老師愿意看那是不 存在的。如何寫一個(gè)可讀性強(qiáng)的代碼呢?我在這里給出一個(gè)方案。


2.3.1  建立一個(gè)新工程

無(wú)論是 IAR,還是其他的什么集成開發(fā)環(huán)境,它們?cè)谛陆üこ痰臅r(shí)候都會(huì) 給你做好一個(gè)模板。所謂模板,就是一個(gè)沒有什么實(shí)際功能但是可以編譯運(yùn)行 的程序。比如 IAR 就會(huì)生成一個(gè)只有一個(gè) main.c 文件的模板。



2.3.2  擴(kuò)充我們的工程

有了這個(gè)模板之后,我們就像有了一個(gè)空房子,我們現(xiàn)在還需要給它添加 代碼和文件,裝修它。

眾所周知,在 C 語(yǔ)言當(dāng)中,main 函數(shù), 又稱主函數(shù), 是程序執(zhí)行的起點(diǎn)。我 們將程序燒寫到單片機(jī)中,單片機(jī)也會(huì)從 main.c(在官方代碼中,我們把它改名 為 SmartCar.c 了,就是項(xiàng)目中含有 main 函數(shù)的 c 程序文件) 開始執(zhí)行,一條 接一條語(yǔ)句。

但是需要注意的是,我們希望單片機(jī)上電以后一直工作下去,永不停止,所 以 main 函數(shù)中必須有一個(gè)死循環(huán) while(1),否則就會(huì)報(bào)錯(cuò)。

保證 main.c 文件的簡(jiǎn)潔可以有效提高代碼的可讀性:我們可以把各個(gè)需要 實(shí)現(xiàn)的功能封裝成函數(shù),然后必要時(shí)在 main 函數(shù)中調(diào)用,這樣讀起代碼來(lái)就 會(huì)很直觀;只需要執(zhí)行一次的代碼寫在死循環(huán)外,需要不斷執(zhí)行的代碼寫在死 循環(huán)內(nèi)。

功能函數(shù)的代碼建議大家按模塊分類,比如電機(jī)部分的代碼就寫在 motor.h 和 motor.c 兩個(gè)文件中。其中,.h 文件存放外部函數(shù)聲明,.c 文件中對(duì)應(yīng)就是 這些已經(jīng)聲明的函數(shù)的具體實(shí)現(xiàn)。如果需要使用這個(gè)模塊中的功能函數(shù),添上 一句 #include ”motor.h” 就可以了。

這里有幾個(gè)注意事項(xiàng)非常重要:第一個(gè)就是為了讓頭文件不重復(fù)包含、編 譯不報(bào)錯(cuò),我們需要在頭文件中添加預(yù)編譯指令(在《5-3 硬件調(diào)試方法》的編 譯 BUG 部分中有具體介紹);第二個(gè)就是.h 和.c 中的函數(shù)名、函數(shù)返回類型必 須一一對(duì)應(yīng),否則就會(huì)報(bào)錯(cuò)。

如果有一個(gè)變量所有的程序文件都要使用怎么辦?這時(shí)候我們就要把它定 義為全局變量,比如”extern  int i;”,聲明后需要在主函數(shù)中對(duì)它進(jìn)行初始化才 能使用,比如”int i=0;”。另外,用好  #define 可以增強(qiáng)代碼的可移植性,也更 容易閱讀。


2.4如何使用官方代碼

官方代碼已經(jīng)將所有可能用到的基本功能幫大家實(shí)現(xiàn)好了,大家只要閱 讀對(duì)應(yīng)的文檔,學(xué)會(huì)如何調(diào)用即可。主要需要修改的文件為 SmartCar.c 中的main 函數(shù),以及部分中斷回調(diào)函數(shù)。

當(dāng)然,把所有的策略代碼都堆放在 main 函數(shù)里是非常不被推薦的做法,可 讀性和可維護(hù)性極差,建議大家建立添加幾個(gè)自己的程序文件用于存放封裝好 的比賽策略。

點(diǎn)擊 IAR 左上角的 File-New File,然后就會(huì)發(fā)現(xiàn)一個(gè)名字為 Untitled1 的 文件出現(xiàn)在欄目上,點(diǎn)擊右鍵-Save Untitled1,就會(huì)彈出一個(gè)窗口,我們把它保 存為“strategy.h”,就會(huì)得到一個(gè)在 app 文件夾下的.h 文件;同理再創(chuàng)建一個(gè) 新文件,保存為 strategy.c,就會(huì)得到一個(gè)在 app 文件夾下的.c 文件。

這是我們發(fā)現(xiàn)左側(cè)的工程列表中并沒有這個(gè)兩個(gè)文件,那是因?yàn)樗鼈儧]有 被添加進(jìn)工程中,右鍵點(diǎn)擊 app-add-add files,把那兩個(gè)文件添加進(jìn)來(lái)就好啦。 仿照其他模塊.c 和.h 文件的格式(千萬(wàn)注意別漏了預(yù)編譯指令),完成自己 的代碼吧。然后在 SmartCar.c 中添加一句 #include ”strategy.h” 就可以使用

這兩個(gè)文件中的函數(shù)了。


完整的pdf格式文檔51黑下載地址:
4-2 程序燒寫指南和程序使用指南.pdf (818.73 KB, 下載次數(shù): 47)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 四虎8848| 亚洲精品在线免费 | 国产精品久久网 | 一级二级毛片 | 亚洲天堂网址 | 能看的av网站 | 秋霞一区二区 | 神马香蕉久久 | 亚洲午夜一区 | 欧美午夜片 | 天天操天天操天天 | 五月天婷婷社区 | 亚洲网在线 | 三级视频在线观看 | 国产在线网站 | 亚洲视频一区二区三区 | 日本伊人网 | 亚洲精品xxx| 久久久久久久久久国产精品 | 国产福利视频在线 | 一区二区免费看 | 久在线| 黄色成人在线观看 | 在线中文字幕视频 | 偷拍福利视频 | 在线观看小视频 | 国产精品亚洲综合 | aaaaaa毛片 | 日本免费高清视频 | 亚洲资源在线观看 | 精品国产伦一区二区三区 | 国产原创精品 | 亚洲综合另类 | 欧美日韩亚洲一区二区 | 一级片黄色 | 国产又黄又爽 | 国产一区二区三区四区 | 午夜精品视频在线 | 精品久久免费视频 | 九色在线视频 | 亚洲黄视频 |