arm工程uboot中的开始段start.s编译报错,提示

问题就是说:

在ARM上编程,但凡涉及到调用,就需要遵循一套规约AAPCS:《Procedure Call Standard for the ARM Architecture》。这套规约里面对栈使用的约定如下:

5.2.1.1
Universal stack constraints
At all times the following basic constraints must hold:
Stack-limit < SP <= stack-base. The stack pointer must lie within the extent of the stack.
SP mod 4 = 0. The stack must at all times be aligned to a word boundary.
A process may only access (for reading or writing) the closed interval of the entire stack delimited by [SP, stack-base – 1] (where SP is the value of register r13).
Note
This implies that instructions of the following form can fail to satisfy the stack discipline constraints, even when reg points within the extent of the stack.
ldmxx reg, {..., sp, ...} // reg != sp
If execution of the instruction is interrupted after sp has been loaded, the stack extent will not be restored, so restarting the instruction might violate the third constraint.
5.2.1.2
Stack constraints at a public interface
The stack must also conform to the following constraint at a public interface:
SP mod 8 = 0. The stack must be double-word aligned.

可以看到,规约规定,栈任何时候都得4字节对齐,在调用入口得8字节对齐。

解决办法在arm的错误问题库中也能够找到

也就是在开头加入一行:PRESERVE8

这样就可以编译通过了

解决arm编译错误:~PRES8相关推荐

  1. 解决java编译错误(程序包javax.servlet不存在javax.servlet.*)

    解决java编译错误(程序包javax.servlet不存在javax.servlet.*) 两种解决方法 第一种: 1.在电脑搜索servlet-api.jar 一般在apache-tomcat-8 ...

  2. java编译报错提示编码gbk的不可映射字符啥意思_解决java编译错误:编码GBK的不可映射字符...

    [我的Android进阶之旅]解决Android Studio 运行gradle命令时报错: 错误: 编码GBK的不可映射字符 1.问题描述 最近在负责公司基础业务和移动基础设施的开发工作,正在负责L ...

  3. 排错实战——解决c++编译错误:error C2059: illegal token on right side of '::'

    缘起 最近,项目里出现了一个奇怪的编译错误.乍看错误提示,真有丈二的和尚,摸不着头脑的感觉.解决之后,又是这么的合情合理.具体是什么样的问题呢?一起来看看吧. 说明: 实际项目中的错误隐藏的更深,完全 ...

  4. 解决UBOOT编译错误 Nothing to be done for `_depend‘.

    编译错误 1.Nothing to be done for `_depend'. 2.XXXX/XXX/arm-linux-gcc:not found 原因:虚拟机为64bit机器,而TQ2440给的 ...

  5. 解决 Xcode10 编译错误 ld: library not found for -lstdc++6.0.9

    升级完 Xcode10 之后,打开老的工程,编译提示错误: ld: library not found for -lstdc++6.0.9 这是因为苹果在 Xcode10 中移除了 libstdc++ ...

  6. [STM32问题解决(1)]一类问题的解决办法——编译错误:XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).

    目录 1 问题说明 1.1 问题回顾 1.2 寻找解答所犯的错误 2 解决办法(试用于一系列问题) 2.1 重审问题 2.1.1 Undefined symbol xxx.c 2.1.2 referr ...

  7. 解决java编译错误:编码GBK的不可映射字符

    今天在做作业时发现一个问题:在编译时出现编码GBK的不可映射字符,Java报错 环境是使用记事本写一个判断是否闰年的java文件,结果在编译时,出现下列问题. 然后查找资料后发现使用javac -en ...

  8. 如何解决C++编译错误C2280尝试引用已删除的函数【每天一个小技巧】

    本文结构 0.引言 1.解决方法 0.引言 在使用开源优化库QP时,采用了OSQP-EIGEN的包装器,在我的类中想引用他的求解器 / test.hpp class name{*******OsqpE ...

  9. 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)

    先把Tomcat下的lib文件夹里面的servlet-api.jar路劲添加到classpath下,然后再把servlet-api.jar拷贝到JDK路劲的jre\lib\ext文件夹下即可.

最新文章

  1. 16 Java面试之 HTML
  2. 《幸福资本论》读书笔记
  3. java线程中等待_Java:线程中的Thread.sleep():没有等待
  4. jsp 验证码以及验证码局部刷新
  5. 模式识别之车牌识别---一个开源车牌识别项目easypr
  6. android python 纠正图片,Python脚本替换Android资源(包名,图片,文件内容)
  7. 仿ios便签软件_手机便签软件误删怎么恢复?
  8. Centos7.1 命令行与图形化界面登陆
  9. excel删除行 uipath_学会这8个Excel神技巧,轻松告别零基础!
  10. Foxmail新建自动标签功能在哪 如何给Foxmail收件人邮件设置自动标签
  11. vue中v-bind指令的使用之Vue知识点归纳(七)
  12. contentsize and frame
  13. [转载] Python—urllib模块
  14. linux采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器
  15. C语言2级题pdf百度云,C语言二级考试试题.pdf
  16. python 读取 pdf 文档
  17. 堆排序算法思路以及Java实现
  18. jQuery中点击按钮创建表格
  19. 计算机桌面图标管理,桌面图标管理|轻松管理桌面图标
  20. 韩信点兵(中国剩余定理)

热门文章

  1. Java、JSP等足球俱乐部网站
  2. 博客搬家系列(一)-简介
  3. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs
  4. 昔日四强“巨大中华”今日为何差距这么大
  5. postman导出请求url_postman使用教程
  6. 股票高位天量后走势、中继浪、放量涨停突破形态
  7. 3dmark android 中文,貌似不靠谱,Android平台3DMark测试版初体验
  8. autodock-vina分子对接
  9. DNS服务器它到底是干啥的呢?
  10. 湖南工业大学电费数据抓取(完美校园版)