相关文章推荐
逃跑的高山  ·  QT ...·  6 月前    · 
满身肌肉的领带  ·  Cellulose ...·  11 月前    · 

工欲善其事,必先利其器。 使用Qemu 虽然可以进行模拟开发,但在Qemu调试汇编有一些困难。
DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。

DS-5 安装

  1. 从官网选择一个ARM DS-5版本进行下载
    这里写图片描述

我选择的版本是5.26.2, 已经支持Arm v8了。
下载完成后,解压, 点击setup.exe 进行安装, 安装完成后需要添加license, 否则项目无法编译。
这里写图片描述

license添加完成后既可以正常使用。

##使用DS-5 创建程序

  1. 首先新建一个空的C project, 输入project name, 选择tool chains为Arm compiler 6。
    这里写图片描述

  2. 右击刚才新建的project, 添加source file
    这里写图片描述

新增一个C文件 main.c 和一个汇编文件 asm_add.s。写一个很简单的a + b =c的程序。代码的核心部分使用汇编实现,C程序主要是入口以及检查结果的准确性。

汇编部分:
这里写图片描述

  1. 代码编译
    在编译之前需要预先做一些配置, 右击项目, 点击属性,选择C/ C++ build
    这里写图片描述

选择设置, 将All Tools settings下的target CPU更改为arm v8:
这里写图片描述

将ARM linker6 中的Image_layout 改为如下配置:
在这里插入图片描述

应用这些修改后, 右击项目, 选择build project:
这里写图片描述

如果编译成功, 会在Debug目录下生成object 和 axf文件。

  1. DEBUG 设置
    选择run-> debug configuration
    这里写图片描述

右击DS-5 debugger, 新建debug 配置
connection 选择 arm v8-a
这里写图片描述

files选择刚刚编译出来的axf文件:
这里写图片描述

debugger选择从main开始, 然后apply, 再然后点击debug
这里写图片描述

  1. 运行
    点击debug 后,生成如下的界面
    这里写图片描述

点击左上角的开始按钮, 会从左下角的光标位置开始运行, 右上角可以看程序的寄存器河内存信息, 右下角可以看程序的运行结果。

选择单步调试,当运行到汇编部分时,查看寄存器状态
这里写图片描述

可以看到,当运行到ADD w0, w0, w1那一步时,core寄存器的x0, x1已经变成了预设的2和3.

最终结果:
这里写图片描述

工欲善其事,必先利其器。 使用Qemu 虽然可以进行模拟开发,但在Qemu调试汇编有一些困难。 DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。DS-5 安装从官网选择一个ARM DS-5版本进行下载 我选择的版本是5.26.2, 已经支持Arm v8了。 ...
SimIt- ARM -3.0 给予命令行 ARM 指令 模拟器 ,短小精悍,是研究 ARM 处理器的好工具,该 模拟器 既可以运行用户级别的ELF程序,又可以模拟运行Linux操作系统;提供了简单易用的调试命令,可以逐条跟踪指令的执行。 SimIt- ARM -3.0-gk-20150902.tar.bz2 HowTo 0.what is SimIt- ARM -3.0 SimIt- ARM 3.0 is an instruction-set simulator that runs both system-level and user-level ARM programs, for more about it please read user's guide file. 1.how to build tar jxvf SimIt- ARM -3.0-gk-20150902.tar.bz2 cd SimIt- ARM -3.0-gk ./configure make install After these steps, the ./build/bindirectory contains the following programs: ema An ARM interpreter. To test the installation was successful type ./build/bin/ema test/wc configure modifiy PATH environment variable: PATH=$PATH:$HOME/SimIt- ARM -3.0-gk/build/bin ; export PATH 2. how to use 2.1 run user-level ARM programs [root@ORA9 SimIt- ARM -3.0-gk]# cd gcc- asm [root@ORA9 gcc- asm ]# more hello.c * hello.c * Tue Sep 8 10:13:40 CST 2015 int main() printf("hello world\n"); __ asm ("mov r0,#2\n\t" "swi 0x1\n\t"); // syscall: exit(2); [root@ORA9 gcc- asm ]# arm -linux-gcc -v Reading specs from /usr/local/ arm /3.4.1/bin/../lib/gcc/ arm -linux/3.4.1/specs Configured with: /opt/crosstool/crosstool-0.28/build/ arm -linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target= arm -linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/ arm -linux/gcc-3.4.1-glibc-2.3.2 --with-float=soft --with-headers=/opt/crosstool/ arm -linux/gcc-3.4.1-glibc-2.3.2/ arm -linux/include --with-local-prefix=/opt/crosstool/ arm -linux/gcc-3.4.1-glibc-2.3.2/ arm -linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix gcc version 3.4.1 [root@ORA9 gcc- asm ]# arm -linux-gcc hello.c -o hello -static [root@ORA9 gcc- asm ]# ls -l hello* -rwxr-xr-x 1 root root 520775 Sep 8 10:18 hello -rw-r--r-- 1 root root 160 Sep 8 10:15 hello.c [root@ORA9 gcc- asm ]# file hello hello: ELF 32-bit LSB executable, ARM , vers
从开始, 引入了对 arm v7和 arm 64 linux平台的。 非常感谢他们。 因此,不再需要此存储库,并从v5.2.0-beta1开始停止支持。 如果您正在 使用 此仓库中的非官方版本,则系统会邀请您升级到正式版本。 如果需要 arm v6构建,则邀请您寻求官方支持。 树莓派1( arm v6) 树莓派2和3( arm v7) 用于基于 arm 的pi(1、2和3)和 arm 64 / aar ch64 的非官方软件包。 Grafana不提供用于 arm 的软件包,因此此仓库的目的是提供有关如何自己构建Grafana的注释,以及我根据这些注
Slackware ARM 交叉编译器Bash脚本README 该脚本也可以从SlackDocs项目中获得: 该脚本下载RPi Linux内核源代码和所需的 进制文件, 并配置,构建,修补和 安装 gcc 10.2.x aar ch64 -linux 目前在Raspberry Pi 3/4上运行的Slackware ARM 上的交叉编译器。 使用 安装 您应该创建一个“ build-dir”文件夹并将此脚本复制到其中(例如/ tmp / build-dir),然后以“ root”用户身份从那里运行。 〜#chmod + x SARPi64.SlackBuild-gcc-10.2- aar ch64 -cc.sh 〜#./SARPi64.SlackBuild-gcc-10.2- aar ch64 -cc.sh 您可以在任意位置 安装 交叉编译器,只要可以由普通用户(即不是“ root”)访问。 默认值为/tm
ARM DS-5 是一套针对Linux系统或者嵌入式裸板系统专业的软件开发解决方案,它涵盖从boot code到kernel porting、application开发和 bare-metal debugging以及 performance analysis的各个阶段[1]。 ARM DS-5 是一套 ARM 系统开发工具的集合,它包含Eclipse IDE、 DS-5 Debugger、AR
下载链接: https://developer. arm .com/products/software-development-tools/ ds-5 -development-studio/streamline 登陆后首先用邮箱注册账号,之后才能下载: 之后 安装
FEX-快速的x86仿真前端 FEX允许您在 AAr ch64 主机上运行x86和x86-64 进制文件,类似于qemu-user和box86。 它具有对rootfs覆盖的本机支持,因此您不需要chroot以及一些thunklib,因此它可以将GL之类的内容转发到主机。 FEX向来宾提供了Linux 5.0接口,并同时支持 AAr ch64 和x86-64作为主机。 FEX仍在进行中,因此请期待情况会有所变化。 FEX已经过测试,可以在 ARM v8.0, ARM v8.1 +和x86-64(AVX或更高版本)硬件上构建并运行。 ARM v7和较早的x86硬件将无法正常工作。 预期的操作系统 使用 情况是Linux。 FEX已通过Ubuntu 20.04、20.10和21.04进行了测试。 还有Arch Linux。 在 AAr ch64 主机上,用户必须具有x86-64 RootFS 。 有关更多信息,请
详见百度盘 DS-5 (即 ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。 ARM DS-5 提供具有跟踪、系统范围性能分析器、实时系统 模拟器 和编译器的应用程序和内核空间调试器。这些功能包括在定制、功能强大且用户友好的基于 Eclipse 的 IDE 中。借助于该工具套件,可以很轻松地为 ARM 支持的系统开发和优化基于 Linux 的系统,缩短开发和测试周期,并且可帮助工程师创建资源利用效率高的软件。 深圳市米尔科技有限公司是 ARM 公司官方授权全线工具产品代理商
图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测图像检测 图像检测图像检
这个错误发生在尝试 安装 libyaml-devel软件包时。错误信息指出该软件包版本为0.1.7-5.el8. aar ch64 ,并且路径为/libyaml-devel-0.1.7-5.el。 这个错误可能有几种可能的原因。首先,可能是您的操作系统版本与软件包不兼容。在这种情况下,您需要检查您的操作系统版本,并找到与之兼容的libyaml-devel软件包版本。 另一种可能性是您已经 安装 了具有相同名称但版本不同的libyaml-devel软件包。在这种情况下,建议您首先卸载现有软件包,然后再 安装 所需版本的软件包。 另外,这个错误也可能是由于您的软件包管理器无法找到或访问软件包的存储库所致。这可能是由于网络连接问题或存储库配置错误引起的。您可以尝试检查您的网络连接,确保您可以访问软件包存储库,并验证您的存储库配置是否正确。 最后,有可能是由于软件包本身存在问题或错误。在这种情况下,建议您尝试 使用 不同的软件包源或与软件包的开发者或支持人员联系以获取更多帮助。 总之,要解决这个错误,您需要确定操作系统版本与软件包的兼容性,并确保软件包能够正确访问和 安装 。如果问题仍然存在,您可能需要进一步研究或与相关人员寻求帮助。
Hober_yao: pcie设备地址空间都是由BAR地址映射的, 可以看文中bar地址的说明。BAR的bit0表示该空间是I/O还是memory空间, 如果想要同时使用I/O空间和memory空间,需要2个不同的bar, 所以 memory空间和io空间是相互独立的。 协议7.5.1.2.1: A Function that wants to map control functions into both memory and I/O Spaces at the same time must implement two Base Address registers (one memory and one I/O). The driver for that Function might only use one space in which case the other space will be unused. Functions are recommended to always map control functions into Memory Space PCIe学习笔记之Max payload size Hober_yao: 你是对的,这里我写错了。 感谢指正 PCIe学习笔记之Max payload size qq_43369685: setpci -s 00:18.0 CAP_EXP+08.W=0x2020 这里为什么不是设置为0x1020呢, 2020是0010,0000,0010,0000,它的14:12bit是010,也就对应512B。 如果是1020的话,0001,0000,0010,0000,它的14:12bit才是001,对应256B PCIe学习笔记之pcie结构和配置空间 想请教下文章说配置空间,io mem 空间是在pcie域内事独立编址的,再规范哪里有说明么 PCIe学习笔记之pcie结构和配置空间 Hober_yao: 是的,描述有点问题, 不是每一行都这样的, 只有表示capability的那些行是这样的