第1砍 - 磨刀霍霍

公寓善骑士 必先利其器

骑士要住在好的公寓, 就必须要先准备好工具

: ????

不过在真正要开始开发之路之前, 我们必须要先准备好开发环境. 不管你是否拥有嵌入式开发板, 接下来的Lab都有机会可以尝试

工具链

因为我们即将面向aarch64的架构进行编程, 所以我们直接安装整套的gnu toolchain

sudo apt-get install -y g++-aarch64-linux-gnu

在正确的安装之後, 试着看看有没有以下的指令可以使用

接着继续安装qemu, 我们会使用它来进行系统模拟

sudo apt-get install -y qemu-system-aarch64

安装完之後可以使用以下指令测试qemu是否正确安装

qemu-system-aarch64

完成上述步骤 接着我们就可以先实作简单的lab

但... 工程师的使命就是制造一堆bug

我们如何知道因为开发过程中恍神而造成记忆体操作上的失误?

我们需要强大的神器 : GDB

之後会使用GDB来远程调试, 所以如果直接在host上安装; 会没办法debug arm platform的系统

自行编译GDB就可以设定target platform

取得GDB source後解压缩

执行configure来设定host跟target的对应关系

../configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=aarch64-linux-gnu

可以看到target设定为aarch64

接下来就可以compile 利用刚刚安装的GNU toolchain

export CC=aarch64-linux-gnu-gcc

make

make install

安装完毕之後执行gdb

你就可以看到美丽的画面 如下图

那今天就大致设定好後续会大量使用到的工具

[下集预告]
大致讲解如何使用每一个组件来开发bare metal的系统所代表的含意以及用途


<<:  【程序】与你的 IDE 成为好朋友 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 4

>>:  新新新手阅读 Angular 文件 - DataBinding - Day17

Day2 跟着官方文件学习Laravel-环境设定

我们今天要把环境给设定好,并且尝试将laravel专案启动,而在我写这篇文章之前,我已经有利用Hom...

[DAY 07] EC2 - 关於储存空间 EFS

回到储存空间部分, 因为有个 EFS也挺重要的 EFS (Elastic File System)...

JavaScript基本功修练:Day27 - AJAX基本概念

对於新手来说,AJAX课题里比较难懂的部分应该是背後的运作概念,而非程序码本身。这个课题会分开几篇,...

【课程推荐】2021/3/6~3/7 ISTQB Certified Tester 软件测试工程师(Foundation Level)国际认证班

课程目标 本课程定位为「软件测试入门砖」,课程规划依据「2018 ISTQB Foundation ...

Proxmox VE直通N卡Code43解决

N卡有毒,直通打完驱动后卡代码43,不能用,找了一圈只需要加上一行代码就能解决 先找到虚拟机文件位置...