从armv7开始学习avmv8,跟着项目一步步走下来。从不熟悉A53任何东西到uboot跑起来,再到移植四核linux成功,再到VxWorks 7运行起来,回忆记录一下这四个月经历的种种
ARM DS-5的示例工程
在DS-5的Project Explorer窗口内,右键import
选择DS-5目录下的Example&Programming Libraries
然后就可以看到有各种各样的代码了,如下图所示:
因为我们使用的是Cortex-A53是armv8系列,因此选择ARMv8 Bare-Metal,其中末尾的AC6表示使用的是ARM Compiler 6编译器进行编译,GCC表示使用GCC来编译。
既包含AArch64,又包含AArch32的程序表示,系统上电初始化在AArch64的EL3模式,后面会跳转到AArch32的EL1模式。
我们选择导入如下4个程序来进行编译和运行
导入工程之后是这个样子
导入的程序中默认包含预编译生成的AXF文件,可以先清除掉,右键选择clean project来清除
同理选择 ,Build Project来进行编译,编译结束会生成,obj的临时文件夹以及.o 和.o.d文件
选择右上角的DS-5 Debug按钮,
跳转到Debug界面,这是专用的调试界面,可以用来调试,设置断点,查看系统寄存器等
在空白处点击右键,选择Debug Configuration
能够看到导入的4个工程都包含调试选项卡,如下图所示:
单击第一个startup_AArch64_AC6-FVP_AEM,可以看到一些配置信息,暂时不用理解这些是什么意思,先让程序跑起来
单击右下角的Debug按钮,会自动运行起来,并跳转到第一条指令
点击run按钮程序就跑起来了,并在右下角Target Console看到打印的log信息
虽然过程看上去很简单,但是对于不熟悉这一操作的人来说还是有难度的,毕竟不是每个人都能接触到DS-5软件