【中科亿海微EQ6HL45开发平台测评体验】+ ARM Cortex-M0软核处理器(三)
<h1>5. 利用Keil编译并调试程序<a href="http://www.summerdawn.top:7080/ARM-CM0DS_Example-Design-Kit_EQ6HL45/ARM-CM0DS-EDK_Keil-build-debug.html#keil" title="Permalink to this heading"></a></h1><p>打开Keil MDK,并打开自带的uvproj工程文件,该工程文件使用旧版本Keil MDK开发,对于新版本MDK5,可能会提示“不支持的器件”,“需要安装旧版本支持文件”等信息。</p>
<p>然后直接点击构建,即完成编译-链接-文件格式转换,最后得到我们需要的code.hex。注意:该hex文件为verilog-hex格式,而不是我们在MCU开发中常用的intel-hex格式。</p>
<section id="id1">
<h2>5.1. Keil项目设置<a href="http://www.summerdawn.top:7080/ARM-CM0DS_Example-Design-Kit_EQ6HL45/ARM-CM0DS-EDK_Keil-build-debug.html#id1" title="Permalink to this heading"></a></h2>
<p>注意该工程的设置选项,对于ROM、RAM的区域定位设置、文件输出、调试设置等,如图:</p>
</section>
<section id="id2">
<h2>5.2. Keil仿真调试软件代码<a href="http://www.summerdawn.top:7080/ARM-CM0DS_Example-Design-Kit_EQ6HL45/ARM-CM0DS-EDK_Keil-build-debug.html#id2" title="Permalink to this heading"></a></h2>
<ol>
<li>
<p>解决Keil仿真过程中的“<a href="http://www.summerdawn.top:7080/ARM-CM0DS_Example-Design-Kit_EQ6HL45/ARM-CM0DS-EDK_Keil-build-debug.html#id3">**</a>* error 65: access violation at 0x0000000C : no ‘read’ permission”错误</p>
</li>
</ol>
<dl>
<dt>解决步骤:</dt>
<dd>
<ol>
<li>
<p>Option->Debug->Use_Simulator->CPU.DLL的Parameter,改为-REMAP。现象:依然错误,当时内存地址已经改变:<a href="http://www.summerdawn.top:7080/ARM-CM0DS_Example-Design-Kit_EQ6HL45/ARM-CM0DS-EDK_Keil-build-debug.html#id5">**</a>* error 65: access violation at 0x40023800 : no ‘read’ permission</p>
</li>
<li>
<p>Option->Debug->Use_Simulator->Initialization_File,打开并新建一个.ini文件,里面写上map 0x40000000,0x400FFFFF read write保存即可(MAP不区分大小写,注意read和write中间是空格不是逗号)</p>
</li>
<li>
<p>再进入Debugger就可以了</p>
</li>
<li>
<p>或者,可以省略第二步,进入Debugger之后再设置map:Debug->Memory_map,手动输入0x40000000,0x400FFFFF(输入框上面有个示例是0x4000FFFF,但是这个地址值不够大,我们要大一点的0x400FFFFF)。步骤2和4的区别在于:每次退出Debugger后,步骤4的设置都会丢失,会比较麻烦,所以一般只用步骤2的方法</p>
</li>
<li>
<p>貌似不能通过更改设置中的DLL和它的参数来修正STM32F4的这个错误。因为在keil的安装目录下的ARMBIN里面没有相应的DLL文件(通过“文件说明”项来查看文件的使用说明~)</p>
</li>
</ol>
</dd>
</dl>
<p>———————————————— 版权声明:本文为CSDN博主「Maple_Leaf_15」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:<a href="https://blog.csdn.net/Maple_Leaf_15/article/details/51057991">https://blog.csdn.net/Maple_Leaf_15/article/details/51057991</a></p>
<p>按照以上步骤,步骤2操作截图如下:</p>
<p>步骤4操作截图如下:</p>
</section>
<section id="id7">
<h2>5.3. 调试过程与结果<a href="http://www.summerdawn.top:7080/ARM-CM0DS_Example-Design-Kit_EQ6HL45/ARM-CM0DS-EDK_Keil-build-debug.html#id7" title="Permalink to this heading"></a></h2>
<p>调试过程中,可以在Keil的Debug界面,在Memory窗口上输入AHB2LED地址0x50000000,查看该处的值,可以看到在执行完汇编代码:</p>
<pre style="background:#555; padding:10px; color:#ddd !important;">
STR R0,
</pre>
<p>后,该处值按照预期,在0x55和0xAA之间变化:</p>
</section>
感谢分享,帖子有图文,非常好!
页:
[1]