本文面向还是懂得软件基本操作的行状老手,如果是未使用过该软件的小鲜肉,请移步基础篇。这里以STM32芯片为例对用具进行素养萝莉 在线,其他品牌的芯片在工程竖立上可能存在各异。
二、软件讲明Keil提供了包括C编译器、宏汇编、纠合器、库解决和一个功能弘远的仿真调试器等在内的完整开发决议,通过一个集成开发环境(μVision)将这些部分组合在一齐。 目下软件对汉文的赈济不友好,不淡薄安装网上的一些汉化包之类的。另外培植的工程文献旅途也尽量不要存在汉文,否则可能会出现一些很是。 演示版块:5.24a
三、软件使用 1、开辟聘请(Device) 通过图中1位置的"search"框不错输入芯片称呼,快速找到对应的芯片。在图中2的位置芯片结构图里也不错聘请芯片,这里芯片是按厂家分裂的。聘请完芯片后,在图中3的位置不错巡视芯片简介,一般主频、Flash、Ram大小齐会在这里有所先容。聘请完芯片后,在图中4的位置,不错巡视刻下芯片包的版块。(有些旧的软件包可能存在Bug,最好实时更新到最新版块)图片萝莉 在线
2、概念培植(Target) 使用RTX操作系统RTX(Real Time eXecutive)是ARM公司针对ARM7,ARM9,cortex-m内核推出的一款镶嵌式实时操作系统。RTX的源码跟Keil-MDK绑定在一齐,安装了Keil-MDK之后,不错在 Keil\ARM\RL\RTX\SRC文献夹下找到源码。 是以在Keil上移植RTX操作系统十分浅易。 第一步此选项聘请"RTX kernel"。
图片
第二步添加RTX系统的竖立文献,竖立文献在MDK的安装目次C:\Keil_v474\ARM\RL\RTX\Config底下,文献名RTX_Conf_CM.c图片
留意:工程里面不成有SysTick,PendSV和SVC三个系统中断的使用,因为RTX系统要使用这三个中断。 其他的移植事项这里就未几赘述了,如果有趣味,不错单独出一篇RTX的移植。 聘请编译器在"Code Generation"中的"ARM Compiler"下拉选项框中不错聘请不同的编译器版块。聘请不同编译器版块时,工程竖立的一些选项会有相应的变化,这里咱们一般默许选择"Use defalut compiler version 5"即可。如果是全新的工程,不错试下V6的编译器,速率更快,但污点便是跟目下大部分主流工程不兼容,因为使用的编译器完全不一样。
图片
培植晶振频率在Xtal(MHz)后头不错填写刻下使用的开发板上芯片系统使用的晶振频率。这个只会在仿真调试中使用,如果径直用开发板在线调试,这个不错无谓管。
图片
跨模块优化选项勾选"Use Cross-Module Optimization"聘请跨模块优化,此选项可在编译纠合后对文献纠合再进一步进行优化,从而减少一些支拨。聘请此功能时,可能会导致编译时候变长,但通常的不错使得编译后所使用的空间减少。
图片
微库选项勾选"Use MicroLIB"可聘请使用圭臬缺省库,勾选这个会导致许多库函数用不了,但换来的是省俭了无数的空间。
图片
硬件浮点单位(FPU)如果是M3、M4内核,且芯片硬件有浮点盘算推算单位,可通过勾选"Floating Point Hardware"开放硬件浮点盘算推算功能。
图片
ROM区培植留意这里有IROM和ROM的区别,IROM是指片内集成的ROM(上头也有一转小字写了on-chip),也便是查芯片手册上法例好的里面Flash的地址段。先讲IROM,一般选好芯片后,工程会默许有一套竖立,比如目下选的STM32F302RBTx,其片上Flash是0x8000000动手,大小是128K,也便是这里的0x20000字节。这前后有两个选项,“default"不错勾选启动时是否对此段ROM空间进走时编削。而"Startup"则不错勾选刻下设施是要在哪个Flash段动手启动。 举个大概的例子,像精深的只用一段App设施的情况下,只须培植一段ROM即可,肇始即为片内Flash肇始地址,默许勾选"default”,也便是设施烧录时,会把此段Flash进走时编削,而且设施从此地址动手运行。那如果此时我有两段设施呢?也便是目下常用的一种模式,设施分两段,一段行为带领设施boot,另一段是本体运行的App设施,那么boot应培植在片内肇始地址段,大小凭证boot本体占用空间大小来界说。App接在boot地址段后头,此时"Startup"应勾选在boot段。
图片
RAM区培植留意这里有IRAM和RAM的区别,IRAM是指片内集成的RAM(上头也有一转小字写了on-chip),也便是查芯片手册上法例好的里面ram的地址段。
图片
注:关于ROM跟RAM的培植,光靠这个界面培植并不全面,最直不雅的便是这里IRAM/IROM只须两段,而STM32H7B0光IRAM就有三段,根底不及以培植。是以想要培植全面,应该使用.sct文献,这个后头会讲到。
系统视图文献在"System Viewer File"选项中勾选"Use Custom File",不错自主聘请芯片的视图文献。目下国产化芯片越来越多,不同厂家芯片赈济的视图可能不同。如果使用ST的芯片,这里无谓改,使用默许文献即可。
图片
3、输出培植(Output) 输出文献旅途和输入文献称呼在"Select Folder for Objects"里不错培植输出文献的旅途,在"Name of Executable"后头不错培植输出的文献名。这个输出文献旅途和文献名亦然Keil工程烧录和调试取得文献的依据。 比如这里输前路线培植为/Out,文献名为TestPro,那烧录时,Keil会去查找刻下工程旅途下/Out旅途下是否存在TestPro.axf这个文献,有就烧录,莫得就报错。如果要使用.Hex文献烧录,则文献名这里填写TestPro.Hex。
图片
注:调试只可使用.axf文献,因为.Hex文献不带调试信息。
生成.Hex可施行文献勾选"Create HEX File"即可在编译青年景.hex文献。
生在.Lib封装库文献当需要封装模块或打包SDK包时,不错勾选"Create Library"这个选项,该选项与"Create Executable"互斥,聘请生成.lib文献而不是完整的可施行.axf文献。这种一般是用于提供二次开发的软件包使用。
生成.bat编译施行剧本勾选"Create Batch File"即可在编译青年景.bat的编译施行剧本,即不错无谓开放Keil工程,只需要施行编译施行剧本即可编译工程软件。
调试信息勾选"Debug Infomation"不错聘请是否生成调试信息,留意去掉此勾选项时,无法打断点调试。
浏览信息勾选"Browse Infomation"不错聘请是否生成浏览信息,有这个浏览信息时,不错在Keil里索引函数或变量的界说,调用等,莫得这个信息就无法把这些信息关联起来。如果无谓Keil行为代码裁剪器的小伙伴,去掉这个勾选项,不错减少编译的时候。
图片
4、生成列表培植(Listing)图片
培植纠合文献输前路线Select Folder for Listings…:聘请列表文献的输前路线。 Page Width:界说列表文献每行字符数目。 Page Length:界说列表文献每页字符数目。 这两个基本齐用不着,按默许培植即可。
图片
生成纠合文献Assembler Listing: .\Listings*.lst:为汇编源文献创建列表文献,对应产生源文献名.lst 的文献。 Cross Reference:列出关系符号的交叉援用信息,包括它们的界说位置以及宏的里面和外部的使用位置。
图片
生成经由文献C Compiler Listing: .\Listings*.txt:为 C 源文献创建列表文献,对应产生 源文献名.txt 的文献 和 源文献名.lst 的文献。 C Preprocessor Listing: .\Listings*.i:指示编译器生成预处理文献。 宏调用将被张开而且注视将被删除 对应产生 源文献名.i 的文献。
图片
生成Map文献Linker Listing: .\Listings\TestPro.map:主若是用来生成代码详备信息的map文献,用于后头的代码分析。这里面有选项淡薄全部勾选上。 Memory Map:包含一个内存映射,其中包含镜像中每个加载区,施行区和输入节的地址和大小,包括调试和纠合器生成的输入节。 Callgraph:以HTML相貌创建函数的静态调用图文献。调用图给出了镜像中系数函数的界说和参考信息。 Symbols:列出土产货,全局和纠合器生成的符号以及符号值。 Cross Reference:列出输入节之间的系数交叉援用。 Size Info:给出镜像中每个输入对象和库成员的代码和数据(RO数据,RW数据,ZI数据和调试数据)大小的列表。 Totals Info:提供输入对象和库的代码和数据(RO数据,RW数据,ZI数据和调试数据)大小的总额。 Unused Sections Info:列出从镜像中删除的系数未使用的部分。 Veneers Info:提供纠合器生成的Thumb/ARM胶合代码的详备信息。
图片
5、用户选项(User) 编译前后施行剧本培植Before Compile C/C++ File:裁剪文献之前 Before Build/Rebuild:编译工程之前 After Build/Rebuild:编译工程之后
图片
一般编译完会生成.axf文献,如果要生成.bin文献,不错在编译后调用keil安装旅途下/ARM/ARMCC/bin/fromelf.exe这个用具,索要.axf文献里的.bin文献。为了把这个操作集成在Keil里,这里不错在"After Build/Rebuild"底下的"Run #1"里添加
$K/ARM/ARMCC/bin/fromelf --bin -o "$L@L.bin" "!L"
勾选前边的选项框就不错在编译后施行。就怕候如果不想施行该敕令,不错把勾选去掉。 另外"Before Compile C/C++ File"和"Before Build/Rebuild"这两个也同理,仅仅施行剧本敕令的时候不同辛劳,这个凭证本体想要的成果来定。因为这里只须两个选项,是以如果要施行的剧本有许多,淡薄我方在外面写个批处理调用其他剧本,然后这里只调用阿谁批处理即可。 常用的几个语法如下: $:扩张为指定文献的旅途名 @ :示意 Output -> Name of Exectable:界说的工程名,比如test1 !:示意刻下目次下的扩张旅途 !L:示意编译(Build)后,便是 .\obj\xx.axf文献 K:keil develop chaintool 用具链(fromelf.exe) L:Linker output file,比如工程名为test1,L.bin 编译后,生成的便是最终的test1.bin文献 $K:示意刻下Keil安装的根目次 $L:是指axf的文献旅途,不含文献名。 @L:是指axf的文献名,不含axf的后缀。
需要知谈所灵验法的,不错参考官方手册http://www.keil.com/support/man/docs/uv4/uv4_ut_keysequence.htm
Run “After Build” conditionally:After Build/Rebuild的施行要求。没整昭彰这个有什么用 Beep When Complete:编译完成发出声息。勾选时在编译完成时会响一下。 Start Debugging:启动调试设施。没整昭彰这个有什么用
图片
6、C/C++培植(C/C++)图片
预处理符号(PreProcessor Symbols)Define:用于作念一些工程全局宏界说。
图片
注:在这里修改宏界说时,需要全编译才可见效,局部编译是不见效的哦
言语/代码法例培植图片
Execute-only Code:只生成施行代码,生成施行代码翔实编译器生成任何数据捕快代码部分。 Optimization:优化等第,这个会比拟常用,当神情工程较大,对芯片空间比拟吃紧时,不错筹商晋升优化等第。ST的芯片这里有0~3,4个等第可选。 -O0应用最小优化: 大多数优化齐被关闭,生成的代码具有最好的调试视图。 -O1应用受限优化: 举例,删除未使用的内联函数和未使用的静态函数。在这个优化级别,编译器还应用自动优化,举例删除冗余代码和再行排序指示以幸免互锁情况。生成的代码经过合理优化,具有蹂躏的调试视图。 -O2应用高优化(这是默许培植): 在此级别应用的优化愚弄了ARM对处理器体系缚构的深刻了解,愚弄给定概念的特定于处理器的行为。它生成优化蹂躏的代码,但有限调试视图。 -O3应用最积极的优化: 优化稳妥用户的-Ospace / -Otime聘请。默许情况下,多文献编译时启用,这会导致更长的编译时候,但会提供最高等别的优化。 目下就使用教导来看,优化等第2省俭的空间最多,具体旨趣还没去细究。图片
注:晋升优化等第后,对代码的方法严格度晋升,调试的友好进程会裁减,请恰当使用。
Optimize for Time:依技艺性能优化,一般对代码施行时候比拟敏锐的,不错勾选这个选项,但勾选后为了晋升时候性能,编译后可能会加多一部分空间占用。(鱼与熊掌不可兼得呀)
Split Load and Store Multiple:加载和储存多个分裂;非对其数据接受屡次捕快模式,当LMD/STM指示有4个以上产生时,则分裂LMD和指示,以减小中断蔓延。
One ELF Section per Function:优化每一段函数ELF段(淡薄齐勾选);每个函数齐会产生一个ELF段,勾选该功能允许优化每个ELF,不错减少潜在的分享地址、数据和函数之间的字符串;直白说便是不错减少代码量ROM的大小(内存RAM不会减少)
Strict ANSI C:圭臬(严格)的ANSI C;即编译时严格按照圭臬的ANSI C进行搜检。为了养成蹂躏的编程习气,写出更具移植性的代码,淡薄勾选。
Enum Container always int:胪列时成员变量总为int型。如果空间吃紧,这里就不淡薄勾选了。
麻豆视频Plain Char is Signed(看情况聘请):字符类型为有符号变量。这个不得不说也曾踩过的坑,正本有个神情,从C51平台移植到ST的平台,发现怎样跑齐不合劲,后头发当代码里许多8位的变量界说用的是char,在C51平台编译器编译成无符号类型,到ST平台就形成有符号类型。是以许多讲义里说signed这个重要字不错概略,不适用于系数情况。为了可移植性,最好齐写上,或者IDE里有近似这种选项时,要多留个心眼。
Read-Only Position Independent:为常量生成安谧的代码空间;比如咱们不错将字库变量界说为常量,勾选该功能后会将这些字库变量放在安谧的代码空间中。
Read-Write Position Independent:为可读写代码生成安谧的代码空间。
Warnings(淡薄All Warnings):No Warning:不会有警告请示和输出;All Warnings:系数警告请示和输出。淡薄选All Warnings,许多告警齐不是附耳射声,搜检下好点。
图片
Thumb Mode(留意:在工程中该模式为默许,即无法聘请):Thumb模式;指定培植文献或文献夹(组)为Thumb模式。
No Auto Includes(一般不勾选):不自动添加头文献;不勾选该项则编译器会在Keil安装旅途下寻找工程中的 .h 文献。如果使用了圭臬库,勾选后Keil只会在工程旅途下找库函数的头文献,如果没我方加进来一般是找不到的。
C99 Mode(看情况聘请):C99模式,勾选聘请启用C99圭臬,如不勾选,则按C89圭臬来。为了高移植性,不淡薄勾选。
图片
环境培植及竖立Include Paths:包含旅途,Keil编译时查找头文献,除了Keil自身安装旅途下和自身工程旅途,还有一个便是这里添加的旅途。
Misc Controls:多功能控件,比如这里添加–gnu,不错使用gnu编程方法。
Compiler control string:编译器限度字符串,这个仅仅用来看刻下的一些编译器培植,通过上头不同的勾选培植,这里会有不同的走漏。如果莫得Keil这种界面化用具,我方想要给编译器培植,就不错使用该窗口中的这些指示。
图片
7、汇编培植(Asm)图片
这一部分基本不错参考上文C/C++的培植,只不是这里是对汇编进行培植。Conditional Assembly Control Symbols(有要求的安装限度符号) Define:界说,指定汇编要求。
Language/Code Generation(言语代码生成) Read-Only Position Independent:为常量生成安谧的代码空间。 Read-Write Position Independent:为可读写代码生成安谧的代码空间。 Thurmb Mode:Thumb模式;指定培植文献或文献夹(组)为Thumb模式。 No Warnings:无警告,勾选后不会有warning警告请示。 Split Load and Store Multiple:加载和存储多个分裂。 Execute-only Code:只生成施行代码。 No Auto Includes:不自动添加头文献(一般不勾选)。 Include Paths:头文献包含旅途。 Misc Controls:多功能控件。 Assembler control string:编译器限度字符串。
8、纠合培植(Linker)图片
Use Memory Layout from Target Dialog:使用散布文献加载对话框Target页面,这个需要竖立"Scatter File"一齐使用。当勾选时,其ROM和RAM的培植使用的是前文提到的Target里ROM、RAM的培植。当不勾选时,需要在Scatter File里开放对应的sct文献进行裁剪。Make RW Sections Position Independent:使RW段安谧。 启用时:变量区域(包含RW和ZI)具有独随即址。 禁用时:变量区域(包含RW和ZI)位于全齐的内存地址。 Make RO Sections Position Independent:使RO段安谧。 启用时:常量和代码区域(RO)具有独随即址。 禁用时:常量和代码区域(RO)位于全齐的内存地址。
一般这两项齐是禁用景况,即设施系数编译出来的函数、变量等,齐使用全齐地址,在Map文献中巡视到的齐是一个全齐地址,烧入板子中即可使用。那什么时候会把它开启呢?当有需要用到多个App,且App肇始地址不固定时,就要使用此功能了。这个有趣味不错单独开一篇详备商榷下。
Don’t Search Standard Libraries:不搜索圭臬库。
Report 'might fail’ Conditions as Errors:瓦解’might fail’要求觉得是造作。
X/O Base:X/O基地址 R/O Base:R/O基地址 R/W Base:R/W基地址 disable Warnings:谢绝告警敕令
图片
Misc controls:多功能控件。 Linker control string:纠合器限度字符串。
图片
9、调试培植(Debug)通过单选"Use Simulator"和"Use XXX"聘请是用模拟仿真照旧在线仿真
图片
1. 在线仿真Use ST-Link Debugger:聘请烧录器类型
图片
启动位置培植Load Application at Startup:从启动文献动手加载。不勾选时,在插足调试时,不会再行从启动动手施行,但不勾选时,需要手动添加.ini文献,把.axf的调试信息放到Keil里,否则插足调试时无法打断点,也无法跟踪到刻下设施位置。这点在网上查“怎样不复位插足调试”许多会提到这个勾选项,但很少有说起这个.ini的事情,有亦然一带而过。
Initlalization File:运编削文献,不时上文,只须新建一个XXX.ini文献(文献名收缩),点击…按钮,添加该文献,点足下的"Edit"按钮,在文献中添加 “LOAD %L INCREMENTAL” 这一句即可。
LOAD %L INCREMENTAL
Run to main():跑进main函数,插足调试后,会在main里住手,极度于是在main的第一转打了第一个断点。如果不勾选时,一插足调试就全速跑。
图片
复位调试会话培植(Restore Debug Session Settings)使用上一次调试经由对Breakpoints,Watchpoints,Memory Display和Toolbox(如果这些项被选中的话) Breakpoints:断点。 Watch Windows:变量调试窗口。 Memory Display:巡视内存的窗口。 Toolbox:用具栏。 System Viewer:系统视图。
图片
动态库培植Driver DLL:驱动动态库文献,后头Parameter是其对应参数。 Dialog DLL:会话框动态库文献,后头Parameter是其对应参数。 这些是仿确实时候需要用到的动态库,一般无谓修改,使用默许值就行,这些动态库在Keil的安装旅途下了不错找得到。
图片
Settings:培植,对聘请的烧录器进行培植。这里以ST-Link为例(不同烧录器培植界面不同)。 Debug:调试选项栏图片
调试适配器(Debug Adapter)Unit:刻下联接的烧录器开辟,当同期连有多个开辟时,这里不错切换聘请。如果这里莫得可选开辟,讲明刻下电脑未识别到烧录器开辟。 Serial:开辟 Version FW:固件版块 HW:硬件版块号
图片
概念通讯(Target Com)Port :端口类型,不错聘请SW或JTAG接口,如果用的是Nucleo开发板,这里选SW接口。 Clock:时钟培植,不错培植调试的速率。 Req:苦求频率 Selected:本体频率
图片
调试培植(Debug)联接跟复位培植(Connect & Reset Options) Connect:联接培植,Normal Reset:复位培植 Reset after Connect:联接后复位,不勾选时不错在插足调试时不中断刻下开辟运行。 缓存培植(Cache Options) Cache Code:缓存代码,见告调试器还是下载的设施代码不会改变,选中的话uVision将不会从概念系统读取设施代码。 Cache Memory:缓存内存,决定调试设施技艺设施住手运行的时候,是否更新存储器走漏。 下载培植(Download Options) Verify Code Download:下载时磨练代码。比拟概念存储器和调试器上的应用设施的内容。 Download to Flash:下载至Flash。将代码下载到系数的存储器区域,如果不选中,调试器不会把代码下载到Flash Download Setup中指定的存储器地址领域。
图片
本体SW联接的开辟(SW Device)SWDIO:通过SWD接口联接的开辟列表,其中IDCODE为联接的开辟ID,Device Name为联接的开辟称呼。如果刻下烧录器跟芯片之间莫得精深联接,此处不走漏开辟称呼。
图片
Trace:跟踪选项栏图片
Core Clock:中枢时钟频率。培植跟刻下板子疏导的时钟频率,不错在调试时按本体运行时候进行跟踪调试。 Trace Enable:使能跟踪功能。
Flash Download:Flash下载选项栏图片
下载动作培植(Download Function)Erase Full Chip:擦除整片 Erase Sectors:擦除部分 Do not Erase:不擦除 勾选Erase Full Chip时,每次下载时,齐会对整片Flash进行擦除操作。勾选Erase Sectors时,下载时只会擦除使用到的扇区。勾选Do not Erase时,则下载时不擦除正本代码。 Program:烧录 Verify:校验 Reset and Run:复位并运行 勾选Program时,下载时才会把代码写入Flash,否则不写入。勾选Verify时,则在烧录代码后,对代码进行校验。某些处所下不成磨练,比如代码段跟数据段分开下载,代码里不包含数据部分,而工程里竖立的代码段又包含数据段时,此时如果进行校验,可能会因为数据内容不一致导致校验失败。勾选Reset and Run时,则鄙人载完成后立即复位运行代码,不勾选时则需要手动复位运行。
图片
烧录算法RAM for Algorithm:给烧录算法的RAM空间,Start和Size分别培植对应Ram空间的肇始地址和大小,这个一般聘请完芯片后按默许就行,无谓修改,如果有需要径直烧写的片外Flash的,可能需要我方写烧写算法的,此时就需要体恤这个Ram空间是否容得下我方编写的烧录算法大小,需要作念恰当的颐养。
图片
Programming Algorithm:烧录算法聘请,一般聘请完芯片后,这里齐会自动聘请对应的烧录算法,如果不走漏则需要手动添加,否则会导致烧录失败。如果是使用国产芯片,也需要手动添加烧录算法。添加模式很大概,把对应的算法文献(后缀是FLM)放到Keil安装根目次Keil_v5/ARM/Flash旅途下,点Add按钮,聘请对应的文献即可。图片
2. 离线模拟仿真基本培植跟在线是一样的,多了一个"Limit Speed to Real-Time"的选项,意念念是把速率达成到本体时候。但Keil怎样知谈本体速率是怎样样的呢?是以这里还需要培植一个运行频率,即前文说到,在Target里有个频率培植。勾选此选项后,在离线仿真时,代码施行速率便是按设定的运行频率来跑,接近本体板子的速率。如果不勾选,那就径直腾飞了(按电脑频率来跑,有多快跑多快)。
图片
图片
10、实用设施(Utilities)图片
竖立FLASH菜单定名(Configure Flash Menu Command)Use Target Driver for Flash Programming:使用跟调试一致的烧录器进行Flash下载。 Use Debug Driver:使用调试开辟,即下载和调试使用并吞种烧录器开辟。 Update Target before Debugging:在调试前更新代码,勾选后一般是只须在刚开放工程或编译后,第一次插足调试时,会把刻下代码烧录进概念板再进行调试。不勾选则插足调试时不更新代码。
Use External Tool for Flash Programming:使用第三方的用具进行Flash下载。 Command:要使用的Flash烧写用具的敕令文献(时时是一个.exe文献)。 Arguments:传递给Flash烧写用具的参数。 Run Independent:当选中的时候,uVision不恭候Flash烧写完成。不选中的时候uVision要恭候Flash烧写完成而且在输出窗口走漏烧写闭幕。
竖立图像文献的处理(Configure Image File Processing(FCARM))通过在编译经由中调用FCARM,输入竖立映像文献处理(FCARM)的选项。这将把镜像文献退换成c源代码。其中Output File为输出的c文献名,Add Output File to Group这个默许不需要修改,Image Files Root Folder填写需要退换的镜像文献
四、留意事项 部单干程竖立后各异化编译是不会识别进去的,需要全编译智力见效,是以改了工程竖立后,淡薄竣工编译一下。使用sct文献的情况下,需要留意sct文献和前边ROM、RAM竖立二者选一,通过"Use Memory Layout from Target Dialog"勾选是否使用sct文献。(不勾选时使用sct文献)。 五、相干学问STM32、RTX、FPU、SVD、Hex、Bin、axf、Lib、sct、烧录算法、启动文献、Map文献萝莉 在线。 相干著述:Keil5软件使用-基础使用篇、Keil5软件使用-进阶调试篇、Keil软件包-学问矿藏库
本站仅提供存储作事,系数内容均由用户发布,如发现存害或侵权内容,请点击举报。