20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告
一、个人贡献
参与课设题目讨论及完成全过程;
资料收集;
负责环境搭建,代码运行下载;
撰写小组结题报告。
二、设计中遇到的问题及解决方法
1 实验六以太网服务器的实验中,我们在配置好主机和试验箱的ip以后,发现两者无法ping通
解决:修改了main_lwip.h中的实验箱ip,进一步配置了主机ip以后发现还是无法ping通,我们怀疑可能是硬件连接的问题,因为在控制面板中网络连接窗口处,网络显示连接失败,我们拔下jlink的线再次插入的时候出现正在连接,过了一会就出现连接失败
2实验78中涉及的,m4模块和其他模块通讯的实验,由于实验指导书中,没有找到两个模块连接的具体操作,包括将代码下载到哪一个模块,是mdk,还是quartus ,如果下载到quartus,m4是否需要连接电脑,这些都没有提到,以及硬件连接,如何连接两个模块,指导书中提到的跳线帽以及杜邦线我们没有找到。
解决:没有解决,后来老师告诉我们这两个实验不做了。
三、调试过程中遇到的主要问题及解决方法
运行程序之后下载到开发板时出现如下错误
解决办法是:打开Options for Target
选项卡,在Debug
栏选择仿真工具为J-LINK/J-TRACE Cortex
上图中我们还勾选了Run to main()
,该选项选中后,只要点击仿真就会直接运行到main函数,如果没选择这个选项,则会先执行startup_stm32f40_41xxx.s
文件的Reset_Handler
,再跳到main
函数。
然后我们点击Settings
,设置J-LINK的一些参数,如图所示:
图中,我们使用J-LINK V8的SW
模式调试,因为我们JTAG需要占用比SW模式多很多的IO口,而在实验箱开发板上这些IO口可能被其他外设用到,可能造成部分外设无法使用。所以,我们建议大家在调试的时候,一定要选择SW模式。Max Clock
,可以点击Auto Clk
来自动设置,上图中我们设置SWD的调试速度为10MHz
或者5MHz
,这里,如果你的USB数据线比较差,那么可能会出问题,此时,可以通过降低这里的速率来试试。
注意:若是JLINK连接成功的话,SW Device
处会显示设备信息。
单击OK
,完成此部分设置,接下来我们还需要在Utilities
选项卡里面设置下载时的目标编程器,如图所示:
我们直接勾选Use Debug Driver
,即和调试一样,选择JLINK
来给目标器件的FLASH编程,然后点击Settings
,设置如图所示:
这里MDK5会根据我们新建工程时选择的目标器件,自动设置flash算法。我们使用的是STM32F407ZGT6
,FLASH容量为1M
字节,所以Programming Algorithm
里面默认会有1M型号的STM32F4xx FLASH
算法。特别提醒:这里的1M flash算法,不仅仅针对1M容量的STM32F4,对于小于1M FLASH的型号,也是采用这个flash算法的。最后,选中Reset and Run
选项,以实现在编程后自动运行,其他默认设置即可。设置完成之后,如图所示。
四、设计体会及收获
这次课程设计,我们小组遇到了很多的问题与挑战,首先,在实验环境搭建上,由于我们之前从来没有接触arm实验箱的m4模块,在搭建jlink的时候,出现了问题,首先是在设备管理器的串口中检测不到实验箱,以及没有设置好算法,导致打开工程以后无法编译下载程序,以及在代码的理解中,遇到了我们之前学习中的盲区,在虚拟机的制作过程中,因为有了主机实验的经验教训,还算比较顺利的,我们总结了一下,这种实验还是在实验室中比较好,因为自己的电脑系统版本过高,和好多实验需要的软件并不能很好的兼容。
通过这次实验,提高了我们的动手能力,这也是我们在平时实验中缺失的。
参考资料
信息安全系统实验箱指导书