博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习笔记二--《一步一步写嵌入式操作系统--Arm编程方法与实践》
阅读量:5806 次
发布时间:2019-06-18

本文共 802 字,大约阅读时间需要 2 分钟。

     今天工作不算很忙,于是就继续看了第一章的SkyEye虚拟硬件安装和第二章的几节。

     一大早,我就想在机器上跑Arm虚拟机(SkyEye),谁知道在安装过程中,要用到make指令的时候就遇到了comand not found 错误!我记得我在安装cygwin时,明明有选择安装make!在几经波折之后,才发现也许是在安装过程中,选中Detch 下的make时, 如果选中把红色区域的bin类型也选中, 则安装失败,并最终导致都不成功!具体原因未知!

    晚上我又看了第二章《基础知识》中的《使用C语言写一段小程序》、《用脚本链接目标文件》及《用汇编语言写程序》。c语言部分在此略过, 以下着重说明虚拟机SkypEye在启动时运行自己开发的程序的过程。 在安装了Skyeye后,当你在Cygwin中输入Skyeye命令启动Skyeye时,它首先搜索本目录下是否有Skyeye.conf这个文件,如果有,则读取里面关于要模拟的虚拟机的环境,如cpu,启动程序的文件路径等(Skyeye.conf有点类似BIOS配置参数).

 

      虽然能看明白汇编语言这一节,但是要真正开始做Arm上的汇编程序设计,个人觉得只从书中这点知识入手是很难的,还是需要系统学习Arm体系结构与汇编基础知识。在这里先总结下了解到的Arm寄存器结构及一些指令。

 

图一:Arm体系寄存器结构

 

伪指令集:

   ldr:从内存中读取数据到寄存器中

   adr: 将地址存入到某个寄存器中

   arch:选择目标体系

  global:为外部调用公开某个地址

  .equ: 类似于宏定义

 .text: 指定以下内容为代码段

  .align:指定以几个字节为边界对齐代码! 个人理解:用以方便计算内存地址

指令集 :

 cmp:比较指令

 b:跳转指令

 

转载于:https://www.cnblogs.com/Hcsdn/archive/2012/09/05/2672534.html

你可能感兴趣的文章
SettingsNotePad++
查看>>
centos7安装cacti-1.0
查看>>
3个概念,入门 Vue 组件开发
查看>>
没有JS的前端:体积更小、速度更快!
查看>>
数据指标/表现度量系统(Performance Measurement System)综述
查看>>
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
Angular2, NativeScript 和 React Native比较[翻译]
查看>>
论模式在领域驱动设计中的重要性
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>