嵌入式Linux系统设计及应用——基于国产龙芯SoCpdf下载pdf下载

嵌入式Linux系统设计及应用——基于国产龙芯SoC百度网盘pdf下载

作者:
简介:本篇主要提供嵌入式Linux系统设计及应用——基于国产龙芯SoCpdf下载
出版社:清华大学出版社
出版时间:2021-02
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

龙芯系列微处理器是中国拥有自主知识产权的中央处理器,中国科学院计算技术研究所从2001 年开始研制龙芯系列处理器,于2010 年正式成立龙芯中科技术有限公司(以下简称龙芯中科),主要产品包括龙芯1 号CPU、龙芯2 号CPU 及龙芯3 号CPU。本书是基于龙芯俱乐部与龙芯中科合作开发的南京龙众创芯电子科技有限公司承制的智龙开发板,围绕龙芯1 号芯片LS1C 进行嵌入式系统开发讲解,也包含龙芯中科的2K 龙芯派、南京龙众创芯电子科技有限公司

的龙芯3A3000 开发者计算机的内容。

本书内容共分3 篇。基础篇包含实验平台和开发环境的搭建。中级篇为Linux 基础应用编程,包含线程、信号、网络等基本操作。高级篇包含开发板硬件编程、驱动程序编写等高级操作。附录主要为嵌入式系统开发常用资料和智龙开发板的电路原理图。本书结合实践案例及应用场景,按照嵌入式系统的开发流程组织内容,使读者能熟练掌握从开发环境搭建到编写完整工程的流程。同时提供内核源码及实例代码,并给出测试结果,方便读者参考。

本书具有广泛的适用性,不仅可用于MIPS 架构的龙芯1 号芯片的嵌入式系统开发,还可用于基于Linux 操作系统的嵌入式系统学习。其中在内核原理、应用程序编写,如虚拟机编译、程序下载、调试、应用开发、内核裁减等方面与同类ARM 架构芯片相比,开发过程是通用的。本书可作为应用型本科、高职高专院校嵌入式系统方面的课程教材,也可作为相关开发人员的自学教材和参考手册。


作者简介

孙冬梅(1975.1-):博士后,副教授,2004年获南京理工大学测试计量技术及仪器专业博士学位;2011.1~2015.12进入南京工业大学“动力工程及工程热物理”博士后流动站,从事研究工作。现任江苏省仪器仪表学会理事,江苏省射频识别技术标准化技术委员会委员。

2012年主持了江苏省博士后基金“大型风电回转支承多源振动信号故障诊断的数据融合方法研究”;2009年主持江苏省高校自然科学基金项目“基于热导式微流量智能传感器的分析仪器开发研究”。参与了多项国家自然科学基金开发研究,完成了多项科研项目,有丰富的理论及实践经验;近几年来,在国内外核心期刊上发表学术论文50多篇。


前言/序言

前 言 一

记得以前我出差到北京,参观了仰慕已久的中国国家博物馆。在国家博物馆底层的古代中国陈列馆,领略了伟大中国上下几千年历史的博大精深。

我对中国历史最感兴趣的是我国在很早以前就建立了繁荣的文明社会,绵延几千年而不中断,并且社会经济、文化、科技都长期居于世界领先水平。成就这一奇迹的原因是什么?

在国家博物馆里我看到了大量的古代文物,认识到中国文明的源头,其基础就是先进的信息技术。首先有规范的文字—汉字,早在几千年前我们就发明了独立的文字体系,并且不断演化和推广,从甲骨文到金文、篆书、隶书、楷书、行书等。汉字的发明和不断进步使得社会的知识可以不断地积累,演化出四大发明等先进技术。然后是文字的书写工具和载体—毛笔、竹简和纸张,使得文明得以广泛传播。还有就是先进的计算工具—算盘,算盘有一千多年的悠久历史,中国算盘在古代就是当时最先进的“计算机”。在宋代的《清明上河图》里就有算盘的“身影”,算盘是中国古代在信息技术领域的一项重大发明,也是古代中国能持续繁荣的重要基础。

当年笔者在龙芯计算机试用的文章里写道:总结这几个月龙芯计算机的使用,我亲身体验了龙芯产业的成果。龙芯已经成为实实在在的产品。但是任何产品都有从无到有、从小到大的过程,龙芯也不例外。如果说和经历了几十年风雨历程的英特尔这棵参天大树相比,只有几年发展史的龙芯就像是还在茁壮成长的小树苗。

多年以后,龙芯这棵“小树苗”长高了,经历了风霜雨雪的磨炼,发出了新的枝杈。现在龙芯已经开发出大、中、小CPU 3 个系列多个型号产品,在信息安全、国防、航天领域取得了可喜的成果。现在国家日益重视信息产业的安全可控,国产CPU 市场需求也越来越大。随着2015 年龙芯3A2000的发布,新一代龙芯GS464E 微结构实现了单核性能的大幅度提高,龙芯在用户体验上越来越好。同时,龙芯对软件生态的支持也越来越完善,中标、深度、普华、金山、达梦、金蝶等多家知名软件公司加入了龙芯软件生态圈。

经过18 年的努力和积累,龙芯成长为国内能够自主设计微架构CPU 的公司中,坚持时间最久、产品线覆盖最全的国产CPU 平台。尽管目前和国际对手还有不小的差距,但我们只要掌握CPU 自主微架构的开发能力,经过长久坚持努力,不断缩小差距,逐步建立起自己的生态体系,就总有赶超的机会。历史证明,只要能坚持星星之火,就可以最终取得燎原之势。

龙芯CPU 首席科学家胡伟武在CCF2016“第二届自主安全产业生态创新发展论坛”上讲到:建立自主IT 体系是实现“中国梦”的必要条件,我国要建立独立于Wintel 和Android 体系外的独立IT 技术体系,做到“三分天下有其一”,这是成为“科技强国”的基本特征。

笔者有幸作为第一批龙芯计算机的用户,自发参与了龙芯和开源社区的推广,创立了龙芯俱乐部社区。我深深地感觉到龙芯建立自主IT 生态的重要性和艰难,同时也看到,正是龙芯这样长期坚持不懈努力,才会打下了一个比较好的生态基础。为了拓展龙芯的开源技术生态和创新应用,2015 年笔者也基于龙芯1C 开发了首个龙芯开源创客智龙主板,以高性价比和开源的策略,吸引更多龙芯开发者,促进龙芯作品的开发。该主板即为本书所讲解的主板。

笔者在给第一批龙芯开源创客主板用户的致辞中写道:龙芯是中国首个自主CPU 内核的处理器,是中国人的骄傲,代表着千百年来中国计算技术的伟大复兴。回望历史,古代中国的信息技术以珠算为代表引领时代,创造了无限的繁荣。百年的落后对于历史长河只是一个瞬间,中国历史的辉煌是我们立志自主CPU 核心技术的原动力,这个梦想并不遥远,这是一个圆梦的时代!我们有理由相信,只要我们努力和坚持,中国CPU 内核技术的落后局面,在龙芯等国产芯片的搏击下,终将成为历史。而在这个大潮激荡的时代,有一群来自五湖四海的龙芯爱好者默默地耕耘着社区,以另一种方式支

持龙芯。

在龙芯中科技术有限公司的支持和社区开发者的合作下,首批龙芯智龙创客主板在笔者租用的住所客厅里诞生了。龙芯智龙创客主板前后发出了近千块,甚至销售到英国、美国、韩国、俄罗斯等国外地区。

目前,龙芯俱乐部在龙芯中科技术有限公司的支持下成立了运营实体—南京龙众创芯电子科技有限公司,专门进行龙芯开源技术生态和创新应用的拓展。在龙芯不断进取的过程中,让我们重装出发,继续追逐中国梦。

下图为龙芯中科总设计师胡伟武与笔者合影。

龙芯俱乐部创始人石南与龙芯总设计师胡伟武



石南

2020 年12 月

于南京龙众创芯电子科技有限公司



前 言 二

信息化技术的发展,给人类的生存环境和生产环境都带来了重大变革。现在,物联网引领信息产业革命的浪潮,使地球变得更加智慧,使人类生活变得无限美好。以物联网为龙头,智能穿戴、航空航天等重大IT 相关应用领域,都广泛涉及嵌入式操作系统的应用,特别是嵌入式操作系统Linux 的应用。掌握并熟练应用嵌入式操作系统Linux,是计算机、自动控制和电子信息等相关专业人才培养的重要方向。

近期,发生了轰动的中兴被禁事件。现在中兴事件终于结束,但代价很大。如果说以往的采购方便让中国发展本国芯片“三心二意”,那么从现在起,靠美国芯片活得很好的幻想应该破灭了。中国有组织科技攻关的能力,也有推动国产芯片逐渐替代外来芯片所需要的动力。目前中国已经有设计和生产芯片的能力,但是芯片使用的生态还不完善。为了更好地推进国产芯片的使用,扩大国产芯片的生态圈,就有了将龙芯1C 开发过程编撰成书的必要了。

本书不仅用于MIPS 架构的龙芯1 号芯片的嵌入式系统开发,还可用于基于Linux 操作系统的嵌入式系统学习,具有广泛的适用性。其中,在内核原理、应用程序编写方面,与市场常见ARM 架构芯片相比,其开发过程是通用的,包括虚拟机编译、程序下载、调试、应用开发、内核裁减等。

从智龙开发板开箱上电、安装软件、编写代码、调试,到本书整理完工,经历了近一年半的时间。在撰写过程中,经历了各种困难。其中最大的困难在于恒心和毅力。因为本人不是企业的员工,没有将龙芯应用于产品的开发经历,没有现成的实例和成品的代码,更没有开发产品的压力,好在拥有最重要的一点—对于嵌入式系统浓厚的兴趣。虽然对于操作系统内核有一定基础,能熟练操作全部的外设接口操作,但以前用的是其他系统和芯片平台,面对一个新的系统、新的芯片,还是花了心思去掌握。我想,正是经历了这无数问题,并且不放弃,孜孜不倦地寻找答案,才能积累到现在一眼就发现问题的能力。所以,通过本书来学习操作系统,不仅是要进行相关验证性实验,更是要进行创造性开发,才能巩固提高。因为实现一个功能的测试,在代码正确的情况下,验证过程很快,可是设计开发者实现这个功能,可能写了很久。所以不要羡慕资深开发者的火眼金睛和开发速度,那是用时间和精力换来的。

本书中的代码,部分来自网络,部分自己撰写,但都全部调试并在智龙V3.0 上运行通过。其中,

部分应用程序与其他ARM 架构的系统是通用的。本书由3 部分组成:基础篇入门、中级篇应用、高

级篇驱动。入门基础篇包含从一个初学者过渡到系统程序员的基础内容;中级编程篇不仅包含操作系

统的基本操作,如文件、进程、线程、管道、消息、内存、锁、信号、网络,还包含基本的硬件接口

操作,如GPIO、按键、RTC、UART。高级驱动篇则包含驱动程序的编写和高级硬件接口操作,如字

符设备、I2C 总线设备、SPI 总线设备、CAN 总线设备、ADC 设备、LCD 设备。附录为嵌入式系统开

发经常用的资料和智龙开发板的电路原理图等。

本书具体内容如下:

第1 章为本书所采用的智龙开发板的详细介绍、硬件结构,为读者设计电路和进行软件开发提供参考。

第2~6 章介绍了建立开发环境,进行系统开发的准备工作,包括Linux 操作系统基本操作、建立交叉编译环境、制作文件系统,以及编写简单的入门程序和驱动程序。

第7 章为基础Linux 应用编程。

第8 章在第7 章的基础上,编写实例程序操作智龙开发板的硬件接口、外设资源,将开发板实实在在地利用起来。

第9~10 章为高级嵌入式系统开发打下基础,详细介绍了NFS 文件系统的搭建方法和使用Eclipse开发环境进行应用和驱动的编写。

第11~12 章是基础的驱动程序编写,介绍了字符类、杂项类驱动程序的编写方法,并编写了测试程序进行验证。

第13~19 章则基于智龙开发板进行了详细的驱动程序设计开发并编写详细的测试程序。

第20 章介绍了龙芯1C 所使用的PMON 结构,并说明了PMON 编译、烧写和启动方法,还介绍了相关祼机编程的方法。

第21 章介绍了在其他操作系统上搭建智龙开发板开发环境的方法。

第22 章介绍了智龙开发板的综合应用例程,还介绍了基于龙芯1C 的机器人控制器硬件结构、软件开发方法。

第23 章详细列出了智龙开发板所使用内核的配置。

附录为本书实验过程中经常用到的资料及智龙开发板的电路原理图等,方便读者进行二次开发。

本书内容由浅入深,方便自行阅读,也可以跟着配套视频自行学习。本书中所有的代码均开源在GitHub 和百度网盘上。GitHub 网址为https://github.com/sundm75/Loongson-Smartloong-V2.0。

本书由石南负责规划,孙冬梅负责内容编排、定稿与修改。参与本书编写的相关工作人员还有徐钊、孟凡伟、王晓荣等,其中徐钊设计了智龙开发板的硬件,孟凡伟设计了智龙开发板的后期版本和龙芯机器人控制器,王晓荣对部分软件代码进行了测试。

由于笔者的水平有限,书中内容难免有疏忽、不恰当甚至错误的地方,恳请各位读者及同行指正。


南工电控学院测控系孙冬梅、龙芯总设计师胡伟武与王晓荣




孙冬梅

2020 年12 月

于南京工业大学电控学院测控技术与仪器系