【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

除了pc领域的x86、手机和嵌入式领域的arm、通信领域的mips,还有一种cpu架构用的也是很多的。那就是powerpc。记得我的第一份工作,当时在单位的主要工作就是负责大型交换机的开发,使用到的soc就是broadcom公司一款基于powerpc的soc套片。powerpc由于其出众的性能和稳定性,在通信、汽车、航空领域使用的还是相当广泛的。然而,相比较而言,powerpc的开发板很少,不利于学习。所以鉴于目前的这种情况,其实大家可以利用qemu学习powerpc。

目前安装的平台是ubuntu 16.04,相同的操作也可以在其他linux平台完成。

1、安装工具集

 sudo apt-get install binutils-powerpc-linux-gnu

2、安装c预处理工具

sudo apt-get install cpp-5-powerpc-linux-gnu

3、安装gcc编译器

sudo apt-get install gcc-5-powerpc-linux-gnu

4、安装g++编译器

sudo apt-get install g++-5-powerpc-linux-gnu

有了这么四个工具,编写和开发嵌入式程序不是问题了。最简单的嵌入式代码一般是这么几个部分组成,boot.s、main.c、link.script、makefile。所以说,以上安装的这些工具对于编译这些文件是足够了。或许有的同学会说,是不是需要安装libc等库文件?我的答案是,如果编译的程序是在linux平台上运行,那么libc库的安装是非常有必要的。但是,如果安装的程序是bare mental代码,也就是我们通常说的裸奔代码,那么用这些工具来开发,绰绰有余了。

如果需要实际调试ppc程序,只需要查看一下qemu-system-ppc -M help支持哪些板子,直接用qemu做测试即可。一般的处理方法就是qemu -kernel os -S -s,接着用gdb os调试就好了。

上面这些工具有什么遗憾的话,那么就是缺少一个gdb了。当然,要把gdb真正用起来,还需要在bare mental代码中嵌入一段类似于gdb server的代码,这也是额外需要增加的一份工作了。

随想录(一种powerpc编译学习的方法)相关推荐

  1. 一种基于深度学习的方法来检测摩托车头盔的使用

    背景 据统计使用摩托车头盔可以将道路交通事故中摩托车驾驶员致命伤害的可能性降低42%,尽管如此,遵守摩托车头盔还是较少,尤其是在发展中国家,为了有效开展针对性的头盔使用运动,政府必须收集有关头盔法律遵 ...

  2. DeepRMethylSite:一种基于深度学习的蛋白质精氨酸甲基化位点预测方法

    DeepRMethylSite:一种基于深度学习的蛋白质精氨酸甲基化位点预测方法 https://www.researchgate.net/publication/341890599_DeepRMet ...

  3. 超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]今天给大家介绍一篇 ECCV 2020 Oral论文 ,该论文强调了同时考虑网络宽度和 ...

  4. 由Python 学习受挫想到的激励自己学习的方法

    学 Python 又遇到瓶颈.我实在是看不下去那些枯燥乏味的教程书籍. 不过却能够从完成一些小项目中获得成就感.比如非常简单的爬虫程序. 我想这不失为一种激励自己学习的方法. 学习方法: 1.带着目的 ...

  5. BERT6mA:使用基于深度学习的方法预测DNA N6甲基腺嘌呤位点

    <BERT6mA: prediction of DNA N6-methyladenine site using deep learning-based approaches> Sho Ts ...

  6. 【D3D11游戏编程】学习笔记九:编译Effect的方法

    (注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 在D3D11应用程序中,对于写好的Ef ...

  7. postgresql源码学习(57)—— pg中的四种动态库加载方法

    一. 基础知识 1. 什么是库 库其实就是一些通用代码,可以在程序中重复使用,比如一些数学函数,可以不需要自己编写,直接调用相关函数即可实现,避免重复造轮子. 在linux中,支持两种类型的库: 1. ...

  8. 独家 | SVP:一种用于深度学习的高效数据选择方法

    作者:Cody Coleman, Peter Bailis, and Matei Zaharia 翻译:杨毅远 校对:王琦 本文长度为1800字,建议阅读7分钟 本文为你介绍SVP方法如何在保证识别准 ...

  9. 3种基于深度学习的有监督关系抽取方法

    摘要:本文对几种基于深度学习的有监督关系抽取方法进行了介绍,包括CNN关系抽取.BiLSTM关系抽取以及BERT关系抽取. 本文分享自华为云社区<基于深度学习的有监督关系抽取方法简介>,作 ...

最新文章

  1. 计算机语言中索引什么意思,算法索引
  2. vue react 路由history模式刷新404问题解决方案
  3. Python3 实现批量图像数据增强(扩增)并复制xml标签文件【目标检测笔记】
  4. mysql -s 参数_mysqldump 的常用参数。
  5. PMCAFF微课堂 | 腾讯搜索专家教你如何用数据玩转APP运营
  6. iOS 深入解析之NSArray
  7. 【ZOJ - 3210】A Stack or A Queue? (模拟)
  8. 我们去的地方一定会有屎
  9. 基于python的入侵检测系统毕设_基于深度学习的射频指纹的物联网设备入侵检测...
  10. python单行注释的标记符_【转】Pyhton 单行、多行注释符号使用方法及规范
  11. TCL微型计算机如何投屏,TCL电视怎么投屏?3个办法帮助你完美解决
  12. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...
  13. (2)Mac安装Parallels无法上网
  14. R语言ETL工程系列:检索(select)
  15. javascript 对象遍历
  16. 蔬菜大棚原理_温室大棚的原理是什么?
  17. 非常好的截图软件:FSCapture,非常非常非常推荐(百度云链接)
  18. html5妇女节游戏,三八妇女节趣味小游戏
  19. 手机摄像头组成结构和工作原理
  20. 大数据工程师和数据分析师有什么区别

热门文章

  1. Springboot+dubbo Zookeeper+Docker
  2. MySQL/MariaDB表表达式(3):视图
  3. Java 多线程(六)——进程间通信与线程间通信
  4. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)【转】
  5. 搭建局域网HTTP FTP服务
  6. Android Studio 使用笔记:快捷键
  7. Loadrunner如何监控Linux系统资源
  8. 用HTML5实现人脸识别
  9. Exchange误删除邮箱用户后恢复账户问题
  10. ajax,training my javascript!手写AJAX,用POST方法传值