当前位置:网站首页>构建ARM嵌入式开发环境
构建ARM嵌入式开发环境
2022-07-26 10:38:00 【aping_cs_dn】
工程目标:在KeilMDK环境下开发AMR嵌入式系统
主机环境:window 7
一,安装KeilMDK v4.20
【1】下载keiMDK v4.20,解压
先安装mdk420.exe,在mkd420双击,按默认,一路next,安装完成。
【2】解压MDKKEYGEN_3.5-4.20.rar到当前当前文件夹,释放出keygen.exe。
然后启动安装好keil uVision4,再双击keygen.exe打开其界面
【3】点击File->License Management,如下
复制右侧CID栏的内容,粘贴到下图CID栏内,还要在右侧Target栏的下拉框内选中ARM
点击"Generate",在其上的文本栏内生成了LIC码,然后将其复制,再到上图License Management 的LIC栏内粘贴,然后点击 “Add LIC”,注册便完成了。然后重启Keil uVision4生效。
二,安装JLink
JLink的驱动包为Setup_JLinkARM_V424c.zip,网上可以搜到,将其解压,然后双击,就可以安装。
三,安装Proteus 仿真环境
【1】这里安装的是proteus 7.8 sp2版,下载地址:http://www.qjwm.com/down_1894872.html
下载后解压后如下图
双击P77.8sp2.exe,一路按默认next,注意,当安装license时,定位到安装文件包中*.lxk文件,直到完成。
【2】进行破解
双击上图中的Proteus Pro 7.8 SP2破解 1.0.exe,如下图
点击“浏览”,定位到proteus的安装目录,然后点击升级,片刻之后,可以看到升级成功的消息对话框。
四,keilMDK和proteus联调
【1】安装联调补丁vdmagdi.exe,网上可以搜到
然后双击按默认安装。
【2】MDK4的设置方法
找到keilMDK4安装目录的根目录下的tools.ini文件,用记事本打开
找到“[ARM]”,在代码的第7行就是,可以用“编辑->查找”,将[ARM]标签下的蓝色粗体部分,即TDRV12=BIN\VDMARM.DLL ("Proteus VSM Simulator")开始的两行复制,然后到[ARMADS]标签下粘贴为红色部分即TDRV12=BIN\VDMARM.DLL ("Proteus VSM Simulator")开始的两行。之后再CPUDLL0所在行的括号内加入下面红色部分,即TDRV12,修改结果如下:
[ARM]
PATH="C:\Keil\ARM\"
VERSION=4.20
PATH1="C:\Program Files\CodeSourcery\Sourcery G++ Lite\"
TOOLPREFIX=arm-none-eabi-
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10,TDRV12) # Drivers for
ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9,TDRV11) # Drivers for
Cortex-M devices
CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for
Cortex-R4 devices
BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=HLP\RL_RELEASE_NOTES.HTM("RL-ARM Release Notes",GEN)
BOOK3=HLP\RVI.chm("RV Compiler Introduction",GEN)
BOOK4=CMSIS\index.htm("CMSIS Documentation",GEN)
BOOK5=C:\Program Files\CodeSourcery\Sourcery G++ Lite\share\doc\arm-2007q3-53-arm-none-
eabi\pdf\gcc\gcc.pdf("GNU C Compiler",GEN)
BOOK6=C:\Program Files\CodeSourcery\Sourcery G++ Lite\share\doc\arm-2007q3-53-arm-none-
eabi\pdf\as.pdf("GNU Assembler",GEN)
BOOK7=C:\Program Files\CodeSourcery\Sourcery G++ Lite\share\doc\arm-2007q3-53-arm-none-
eabi\pdf\ld.pdf("GNU Linker",GEN)
BOOK8=C:\Program Files\CodeSourcery\Sourcery G++ Lite\share\doc\arm-2007q3-53-arm-none-
eabi\pdf\binutils.pdf("GNU Binary Utilities",GEN)
BOOK9=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)
TDRV0=BIN\UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN\UL2CM3.DLL("ULINK Cortex Debugger")
TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")
TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")
TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")
TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")
TDRV11=NULink\Nu_Link.dll("NULink Debugger")
DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")
LIC0=76FVE-54G9J-9GA70-BNFXE-MV3YB-KY1EC
TDRV12=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK10=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[ARMADS]
PATH="C:\Keil\ARM\"
PATH1="BIN40\"
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10,TDRV12) # Drivers for
ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9,TDRV11) # Drivers for
Cortex-M devices
CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for
Cortex-R4 devices
BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=HLP\RL_RELEASE_NOTES.HTM("RL-ARM Release Notes",GEN)
BOOK3=HLP\RVI.chm("RV Compiler Introduction",GEN)
BOOK4=CMSIS\index.htm("CMSIS Documentation",GEN)
BOOK5=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)
TDRV0=BIN\UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN\UL2CM3.DLL("ULINK Cortex Debugger")
TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")
TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")
TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")
TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")
TDRV11=NULink\Nu_Link.dll("NULink Debugger")
TDRV12=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK10=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
RTOS0=Dummy.DLL("Dummy")
RTOS1=VARTXARM.DLL ("RTX Kernel")
DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")
[KARM]
TDRV0=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[C51]
TDRV0=BIN\VDM51.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
【3】保存退出,重启keiMDK,点击uVision4->Project->Options for xxxx,弹出Options for xxxx对话框,点击Debug页,点击下拉按钮可以看到“Proteus VSM Simulator”,如下图
【5】勾选ISIS Professional->Debug->Use Romote Debug Monitor,就可以进行仿真了。如下图
【6】仿真测试
执行uVission4->Project->Open Project ...-> C:\Keil\ARM\Examples\Hello.uvproj,打开hello工程,在左侧Project栏内的LPC2100工程目录上点右键->Options fro Target 'LPC2100'..,如下图
在弹出的对话框中点击device标签,如下图,选中LPC2138
然后再点击Debug标签,选中右侧的Use单选按钮,并在右侧的下拉框中选中“Proteus VSM Simulator”,如下图
然后点击"OK"按钮,结束设置。然后编译。
打开ISIS Professional->File->Open Design..,打开如下图所示对话框,并定位到LPC2138 with Graphics LCD,然后确认勾选已经了Debug->Use Remote Debug Monitor。
执行uVision4->Debug->Start/Stop Debug Session,这时工程处于debug状态,相应的,在ISIS Professional中看到也处于Debug状态的工程。
边栏推荐
- 点击el-dropdown-item/@click.native
- Issue 6: which mainstream programming language should college students choose
- 剑指Offer(四十四):翻转单词顺序序列
- RT-Thread 学习笔记(一)---配置RT-Thread开发环境
- RT-Thread 学习笔记(五)---编辑、下载、调试程序
- 分布式锁解决方案之Redis实现
- 少了个分号
- 文案秘籍七步曲至----文献团队协作管理
- .net operation redis string string
- The problem of large fluctuation of hx711 data
猜你喜欢
Phase 4: one of College Students' vocational skills preparation in advance
Uniapp uses the simple method signalr (only for web debugging, cannot package apps)
.net5wtm (asp.net core) PgSQL unpacking operation
【机器学习小记】【风格迁移】deeplearning.ai course4 4th week programming(tensorflow2)
Introduction to data analysis | kaggle Titanic mission (I) - > data loading and preliminary observation
The problem of large fluctuation of hx711 data
SAP ABAP 守护进程的实现方式
Issue 8: cloud native -- how should college students learn in the workplace
多目标优化系列1---NSGA2的非支配排序函数的讲解
Mlx90640 infrared thermal imager temperature sensor module development notes (VI) pseudo color coding of infrared images
随机推荐
剑指Offer(二十一):栈的压入、弹出序列
少了个分号
C语言鹏哥20210812C语言函数
链式方法调用的事务问题剖析
从蚂蚁的觅食过程看团队研发(转载)
IAR sprintf 浮点 在UCOS 总格式化成0.0的问题
Asynctask < T> decoration and await are not used in synchronous methods to obtain asynchronous return values (asynchronous methods are called in synchronous methods)
剑指Offer(八):跳台阶
比较器(Comparable与Comparator接口)
扫雷pro版2021-08-19
Oracle create index
Issue 6: which mainstream programming language should college students choose
Simple use of json-c Library -- converting JSON files to struct
第6期:大学生应该选择哪种主流编程语言
多目标优化系列1---NSGA2的非支配排序函数的讲解
Analysis of the transaction problem of chained method call
剑指Offer(五十二):正则化表达式
20210807#1 C语言程序结构
剑指Offer(四十三):左旋转字符串
鹏哥C语言20210811程序结构作业