日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式云IOT技術圈
[導讀]一、keil主界面詳解 打開一個工程文件,可以看到如下的界面: 下面我們就一一來介紹下。為了講解專門找到一個keil漢化補丁。也是夠夠的了。 這里的漢化為了方便講解,實際工作中建議還是用英文版本。 下載:keil 4漢化包 1、菜單欄 文件 其中需要注意的是 Lic

一、keil主界面詳解

打開一個工程文件,可以看到如下的界面:

下面我們就一一來介紹下。為了講解專門找到一個keil漢化補丁。也是夠夠的了。
這里的漢化為了方便講解,實際工作中建議還是用英文版本。

下載:keil 4漢化包

1、菜單欄

文件


其中需要注意的是 License Management,破解時需要在這里輸入。


編輯

視圖

工程

閃存

調試


外圍設備(仿真)

工具

2、工具欄

文件操作

新建文件夾 Ctrl + N

打開文件 Ctrl + O

保存當前文件 Ctrl + S

保存所有文件 無

剪切 Ctrl + X

復制 Ctrl + C

粘貼 Ctrl + V


文件編輯跳轉

撤銷編輯 Ctrl + Z

恢復編輯 Ctrl + Y

跳轉到上一步 Ctrl + -

跳轉到下一步 Ctrl + Shift + -

書簽

添加書簽 Ctrl + F2

跳轉到上一個書簽 Shift + F2

跳轉到下一個書簽 F2

清空所有書簽 Ctrl + Shift + F2

選中行操作

插入縮進(Tab) Tab
取消縮進(Tab) Shift + Tab
確定注釋 無
取消注釋 無

查找文本

查找所有文本 Ctrl + Shift + F
查找文本輸入框 無
查找單個文本 Ctrl + F
增加搜索 Ctrl + I

調試

打開/關閉調試 Ctrl + F5

插入斷點 F9

失能單個斷點 Ctrl + F9

失能所有斷點 無

取消所有斷點 Ctrl + Shift + F9

窗口配置

窗口 無
配置 無

有時會遇到,復制到keil編輯器中的漢字出現(xiàn)亂碼。
解決方法:
configuration 選項對話框中將 ENCODING 框中設置成 Chinese GB2312

編譯


編譯當前文件(單個) Ctrl + F7

編譯目標文件(修改過的) F7

編譯所有目標文件(重新編譯) 無

編譯多個工程文件(多工程) 無

停止編譯 無

下載軟件 F8

工程選項



工程目標選擇框 無
工程目標選項(配置) Alt + F7

工程項目管理


單工程管理 無
多工程管理 無
管理運行時環(huán)境 無
選擇軟件包 無
安裝軟件支持包 無

二、工程配置

1、首先打開目標選項


2、目標選項介紹

如下的界面,我們來逐一介紹一下各個選項。


Device (設備)

選擇你所使用的芯片類型

Target (項目)


第1處:晶振頻率。

這個值主要用于仿真調試用,一般我們使用硬件調試可以不用管這個值。

第2處:操作系統(tǒng)。

很好理解,是否選擇Keil自帶的RTX操作系統(tǒng),一般我們都不選。

第3處:系統(tǒng)預覽文件。

這里我們一般是默認使用系統(tǒng)自帶,不選擇自己定義的。

第4處:使用交叉模塊優(yōu)化、使用微庫。

交叉模塊一般我們不使用,微庫這個功能常用與printf函數(shù)。

第5處:ROM存儲地址。

這里的ROM存儲指的是程序儲存的地址,分片外和片內兩種。

程序存儲在片內好理解(初學者一般下載程序都是下載到片內FLASH),片外存儲程序對于初學者來說比較少見,一般都是項目做大了,或有特殊要求時,片內不夠使用了才將程序存儲在片外。常見使用片外的例子“外部NorFlash存儲程序代碼”就會用到片外的存儲地址。


Read/Only MemoryAreas:填寫的是程序的存放地址。起始地址:0x800,0000,這款芯片的flash大小為512K,也就是有0x80000個地址空間。

Read/Write Memory/Areas: 填寫的是程序運行起來的內存空間。

起始地址:0x2000,0000,大小為64K,也就是0x1000個地址空間。

Flash和Sram的大小是從器件手冊上查見的。


第6處:RAM存儲地址。
RAM存儲地址和ROM道理一樣,可以分片內和片外。常見例子“外部SRAM作為運行內存”。

Output(輸出)


第1處:輸出路徑。

輸出路徑就是在工程編譯的過程中,輸出這些文件保存的文件夾。Keil V5一般默認是保存在Objects文件夾下面,我建立工程一般也使用這個默認的路徑?!酒鋬热菘梢匀縿h除,最好配置在單獨一個文件夾下面,代碼備份時方便刪除】

第2處:輸出可執(zhí)行文件名。

輸出的可執(zhí)行文件和庫的名稱就是在這里定義。比如我們常見輸出Hex文件,其名稱就是這里定義的。

第3處:輸出可執(zhí)行文件(重點)。

這里和輸出庫是二選一,選擇了輸出可執(zhí)行文件就不能選擇輸出庫。重要一點:輸出這些信息都很費時間,如果都不勾選這些選項,編譯速度會很快。

  • **Debug Infomation:**輸出調試信息。勾選上這個選項,我們才可以進行調試。

  • **Create HEX File:**輸出可執(zhí)行Hex文件,很多初學的朋友問:“在哪里設置生成Hex?”,這里勾選上就行了。

  • **Browse Information:**輸出瀏覽信息。勾選上這個我們才能使用go to definition of這個功能。很多人問:“為什么我不能跟蹤代碼了”,原因就在這里。

第4處:輸出庫。

拓展一點:這里輸出(生成)的是靜態(tài)庫,并非動態(tài)庫。初學者可以不用去理解。

Listing(清單)

第1處:輸出路徑、寬高。

選擇列表文件輸出的文件夾??稍O置文件頁面的寬度,長寬。

第2處:輸出匯編列表。

勾選上會輸出匯編列表信息(產生后綴為 .lst的文件)。如果工程中沒匯編文件,則不會輸出信息。

第3處:C編譯列表。

C編譯程序列表選項,勾選上可生成.txt, .i文件。

第4處:鏈接列表。

可選擇生成或禁止生成.map文件??稍O置生成代碼的詳細信息。可選擇性的選取輸出MAP文件。

User(用戶)



第1處:編輯之前運行用戶程序。

第2處:編譯之前運行用戶程序。

第3處:編譯之后運行用戶程序。

如果想生成*.bin格式的文件:

選中 Run #1,在后邊的文本框中輸入fromelf.exe –bin -o ./bin/test.bin ./test.axf

第4處:編譯之后執(zhí)行條件。

Beep When Complete:編譯完成發(fā)出聲音;

Start Debugging:啟動調試程序。


C/C++選項

第1處:預處理(Preprocessor Symbols)

這里主要就是預定義功能,相當于在程序中的#define xxxx。

我上面預定義STM32F10X_HD,在stm32f10x.h文件中就不用定義了。

第2處:語言代碼生成(Language / Code Generation)

Language/code Generation語言代碼生成,可以理解成編譯、鏈接到最后生成代碼。這部分功能對于代碼優(yōu)化比較重要,初學者可以不用過多理解,對代碼大小、運行速度等性能要求較高的人就需要深入理解


Optimization:優(yōu)化選擇項,有Level0 - Level3四個選項。

【設置編譯器命令行:-Onum】

    初學者、在線調試建議使用Level0,也就是不優(yōu)化,這樣執(zhí)行的效果才和代碼一樣。如果配置成Level3,在線調試可能有些地方優(yōu)化而不能打斷點。

Optimize for Time:優(yōu)化時間,即優(yōu)化代碼中費時的地方。

【設置編譯器命令行:-Otime】 --split_sections

    比如有些算法,本身代碼量就比較大,運行需要很長時間(假如需要2秒),這個時候勾選上該功能,會發(fā)現(xiàn)運行時間有比較明顯的減少(或許不到1秒時間)。

Split Load and Store Multiple:加載和存儲多個分裂。

【設置編譯器命令行:–split_ldm】

非對齊數(shù)據(jù)采用多次訪問方式。當 LMD/STM 指令有 4 個以上產生時,列分裂LMD 和 STM 指令,以減不中斷延遲。

One ELF Section per Function:優(yōu)化每一個函數(shù) ELF 段(建議都勾選上)。

【設置編譯器命令行:–split_sections】

每個函數(shù)都會產生一個 ELF 段,勾選上,允許優(yōu)化每一個 ELF 段。這個選項可以減少潛在的共享地址、數(shù)據(jù)和函數(shù)之間的字符串。

直白的意思:可以減少代碼量ROM的大?。▋却鍾AM不會減小)。

舉一個例子,勾選之前和勾選之后,編譯后存儲大小對比:

勾選之前:

Program Size: Code=2540 RO-data=336 RW-data=40 ZI-data=1024

勾選之后:

Program Size: Code=908 RO-data=320 RW-data=40 ZI-data=1024

Strict ANSI C:標準(嚴格)的ANSC。

【設置編譯器命令行:–strict】

也就是說:編譯時嚴格按照標準的ANSI C進行檢查。

Enum Container always int:枚舉總是int型

【設置編譯器命令行:–enum_is_int】

很容易理解,我們枚舉時成員變量類型為int型。

Plain Char is Signed:純字符標記為字符。

【設置編譯器命令行:–signed_chars】

代碼舉例:char a[] = “abcd”; 也就是說將“abcd”標記為字符型。

Read-Only Position Independent:為常量生成獨立的代碼空間。

【設置編譯器命令行:–apcs=/ropi】

比如:我們定義字庫變量為常量,勾選該選項,會將這些字庫變量放在獨立的代碼空間。

Read-Write Position Independent:為可讀寫代碼生成獨立的代碼空間。

【設置編譯器命令行:–apcs=/rwpi】

Warnings:警告

【No Warnings設置編譯器命令行:-W】

No Warnings:不會有警告提示和輸出;

All Warnings:所有警告提示和輸出。

Thumb Mode:Thumb模式。

指定設置文件或文件夾(組)為Thumb模式。

【注意:在工程中該模式為默認,也就是不能選擇】

No Auto Includes:不自動添加頭文件(一般不勾選)。

不勾選該選項,編譯器就會在Keil安裝路徑尋找你工程中.h文件。

舉例:我們定義uint8_t是定義在stdint.h文件里面的,但是我們工程目錄下一般是沒有stdint.h文件。這時候,編譯器就會在Keil路徑下去尋找stdint.h文件。

C99 Mode:C99標準模式。

【設置編譯器命令行:–c99】

C語音有標準有多個版本,如C89、C90、C99等。

第3處:包含路徑(Include Paths)

包含路徑是使用Keil(及類似)軟件必須掌握的一項。包含路徑就是指定我們工程中使用文件所在的位置,讓編譯器找到相應的文件。是初學者、高級軟件工程師都必須掌握的一項。


第4處:多功能控件(Misc Controls)

指定沒有單獨的對話框控件。例如:錯誤消息用日本語言來顯示消息。【不常用】


第5處:編譯器控制字符串(Compiler control string)

這里是針對編譯器執(zhí)行的命名,顯示當前在編譯器命令行指令。

在上面“第2處:語言代碼生成”中有一個中括號【設置編譯器命令行:】

里面的命名就顯示在這里。

Asm

第1處:有條件的裝配控制符號(Conditional Assembly Control Symbols)

指定匯編條件,這里類似上一章節(jié)C/C++選項中的預處理。

第2處:語言代碼生成(Language / Code Generation)


Read-Only Position Independent:為常量生成獨立的代碼空間。

Read-Write Position Independent:為可讀寫代碼生成獨立的代碼空間。

Thumb Mode:Thumb模式。

Split Load and Store Multiple:加載和存儲多個分裂。

Execute only Code:只生成執(zhí)行代碼;

No Auto Includes:不自動添加頭文件(一般不勾選)。

第3、4處同上

Linker(連接器)


第1處:使用分散文件加載對話框Target頁面(Use Memory Layout from Target Dialog)

Make RW Sections Position Independent:使RW段獨立。

【設置編譯器命令行:–rwpi】

啟用時:變量區(qū)域(包含RW和ZI)具有獨立地址。

禁用時:變量區(qū)域(包含RW和ZI)位于絕對的內存地址。

Make RO Sections Position Independent:使RO段獨立。

【設置編譯器命令行:–ropi】

啟用時:常量和代碼區(qū)域(RO)具有獨立地址。

禁用時:常量和代碼區(qū)域(RO)位于絕對的內存地址。

Don’t Search Standard Libraries:不搜索標準庫。

【設置編譯器命令行:–noscanlib】

禁用默認編譯器運行時庫的掃描。

Report ‘might fail’ Conditions as Errors:報告’might fail’條件認為是錯誤。

【設置編譯器命令行:–strict】

報告的條件可能導致失敗的錯誤,而不是警告。

X/O Base:X/O基地址。

【設置編譯器命令行:–xo_base=address】

R/O Base:R/O基地址。

【設置編譯器命令行:–ro_base=address】

R/W Base:R/W基地址。

【設置編譯器命令行:–rw_base=address】

disable Warnings:警用警告。

【設置編譯器命令行:–diag_suppress】

第2處:分散文件(Scatter File)

這里可以加載、查看和編輯分散文件。點擊后面就的三點“…”可以加載文件;點擊“Edit…”查看和編輯對應的文件。

Debug(調試)

第1處:選擇硬件在線調試
下載調試器的選擇不用多說,主要說一下后面“Setting”。

很多人常用J-Link下載調試器,而調試STM32時,可以使用四線SWD模式。如果使用J-Link進行SWD調試。這個時候就需要在“Setting”里面選擇“SW”模式,如下如:

第2處:選擇硬件在線調試

Load Application at Startup:啟動時加載應用程序。

Run to main():程序執(zhí)行到main()函數(shù)。

進入調試模式時,程序自動運行到main函數(shù)處。

Initialization File:加載、編輯初始化文件。

第3處:復位調試會話設置(Restore Debug Session Settings)

這里復位設置就是恢復設置的意思,如果勾選上,點擊一下“復位”就會恢復到之前的狀態(tài)。包括:斷點Breakpoints、窗口Watch Windows、性能分析器 Performance Analyzer、內存窗口Memory Window、工具箱Toolbox、系統(tǒng)查閱器System Viewer等。

第4處:DLL文件(最好默認)

這里的配置屬于Keil自身的配置,最好不要修改。

CPU/Driver DLL - Parameter:CPU驅動文件和參數(shù)。

Dialog DLL - Parameter:會話框DLL文件和參數(shù)。

Utilities(功能)

第1處:配置FLASH菜單命名(Configure Flash Menu Command)

這里是二選一選項,一般我們使用上面的“Update Target Driver for Flash Programming”。

Use Debug Driver:使用調試驅動。

Update Target Before Debugging:調試之前更新目標。

一般都勾選上,因為我們下載程序之前檢測到代碼修改了,就會重新編譯程序(也就是更新目標)

Setting:設置。

很多人下載程序之后,需要復位一下程序才運行,原因在于沒有勾選“Reset and Run”,如下圖:


再有這里需要注意,選擇好自己屬于自己的芯片。
我的是STM32F103RC,根據(jù)命名規(guī)則可知 Flash大小 256K,如果不是還需 add

第2處:配置圖像文件的處理(Configure Image File Processing)
這個選項我們不常用,感興趣的朋友可以自行了解一下。

三、軟件設置

上面這是提了一下,,復制到keil編輯器中的漢字出現(xiàn)亂碼。
接下來,詳細看一下 Configuration
這里面,我能想到的地方:TAB首行縮進的、更改字體,其他默認。
所以接下來我們只看一個 Editor 就好了。

第1處:General Editor Settings

  • Encoding:編碼方式選擇。建議選擇 Chinese GB2312
    Keil提供十幾種編碼方式供大家選擇,一般我們選擇標準的:Dncode in ANSI.

  • Auto Indent:自動縮進。

也就是換行時自動縮進(對齊)功能,提供3個選項。

None:不對對齊,光標每次換行在第一列。

Smart:靈活對齊(常用)。包含大括號自動對齊。

Block:光標對齊于前一行。


Virtual Spaces:虛擬空間。

光標在上下移動時不管有沒有“空間”都對齊。也就是說光標可以在任何位置。

View White Space:顯示空白(空格)。

也就是顯示一個點為空格。

View End of Line:顯示結束行。

也就是在行結束位置顯示換行符

第5處:C/C++ & ASM & Other File

Use syntax coloring:使用語法顏色。不使用語法就等于txt文本那種純黑色

Insert spaces for tabs:符插入空格。

Tab Size:Tab符大小。一個Tab符占幾個空格。

Show Line Numbers:顯示行數(shù)。

Use monospaced Font:使用等寬字體。

Open with Outlining:打開倫廓。


三、編譯、調試

1、編譯

調試之前先要編譯

編譯當前文件(單個) Ctrl + F7
編譯目標文件(修改過的) F7
編譯所有目標文件(重新編譯) 無
編譯多個工程文件(多工程) 無
停止編譯 無
下載軟件 F8

2、調試

打開調試

打開/關閉調試 Ctrl + F5
插入斷點 F9
失能單個斷點 Ctrl + F9
失能所有斷點 無
取消所有斷點 Ctrl + Shift + F9

二、調試工具欄

打開調試,出現(xiàn)了調試工具欄

1、復位,全速運行,停止運行

復位:讓程序復位到起點,調試設置恢復到初始狀態(tài)。

全速運行(F5):可以讓程序運行??催\行狀態(tài),也可以在特定位置打斷點,讓程序運行到特定位置,查看運行狀態(tài)。

停止運行:程序全速運行時(有效),點擊該按鈕可讓程序停止運行。

2、運行光標

這些操作,與打斷點和全速運行(F5)結合著使用。

單步調試

    單步調試(F11)也就是每點一次按鈕,程序運行一步,遇到函數(shù)會跳進函數(shù)**執(zhí)行。

逐步調試

    逐行調試(F10)也就是每點一次按鈕,程序運行一行,遇到函數(shù)跳過函數(shù)**執(zhí)行。

跳出調試


    運行到光標處(Ctrl + F10)即將光標放在某一行,點擊該按鈕(或Ctrl + F11),程序執(zhí)行到光標的位置就會停止下來(前提是程序能執(zhí)行到光標的位置)。

跳轉到暫停行

這個功能在程序停止運行時有效,主要的作用就是我們打開了很多文件,不知道將程序翻到哪里去了,點擊改按鈕即可知道我們的程序暫停在那個位置。

3、調試窗口

有兩種方式打開

這里只介紹幾個常用的。

觀察器窗口(Watch Windows)

常用于查看變量的窗口

存儲器窗口(Memory Windows)

查看該存儲器地址的值得變化

串口窗口(Serial Windows)

查看外設寄存器數(shù)值的窗口


本文轉自如下鏈接,并由本公眾號修改匯總,版權歸作者。

https://blog.csdn.net/qq_29350001/article/details/80396955



免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉