pdf

GNU GCC嵌入式系统开发

  • 1星
  • 日期: 2020-10-01
  • 大小: 38.12MB
  • 所需积分:0分
  • 下载次数:5
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: gcc

gcc

本书首先介绍了gnu gcc的基本组成,分章节讲述了gnu gcc、debian linux、makefile、gdb、vi、emacs等开源开发工具的使用,然后以atmel公司的两款颇具代表性的嵌入式芯片,即低端的8位avr单片机atmega48和中端的32位arm芯片at91sam7s64为代表,全面讲述了gnu gcc在嵌入式开发中的应用。可以看到gnu gcc在不同硬件下的开发过程与使用方法的确具有高度的一致性,给学习与使用带来了很大的方便。书中还特别列举了非常实用的开源项目usbasp以及usbdrv,使读者既能对开源软件的强大功能留下深刻的印象,又能学到实际有用的东西。

本书可作为高等院校计算机、电子、自动化、机电一体化等相关专业嵌入式系统课程的教学参考书,也可作为从事嵌入式系统应用开发工程师的参考资料

第1章 gnu gcc 概述1

1.1自由软件与gnu、gpl1

1.2 gcc的发展历史及特点2

1.3 gcc的使用简介与命令行参数说明4

1.3.1 gcc的基本用法4

1.3.2警告提示功能选项7

1.3.3库操作选项8

1.3.4代码优化选项9

1.3.5调试选项10

1.3.6交叉编译选项11

1.3.7链接器参数选项12

1.3.8链接器描述文件格式12

1.3.9 gcc的错误类型及对策15

第2章 适合于嵌入式开发的平台debian17

2.1 debian概述17

2.2 debian的安装18

2.3 debian基本操作25

2.3.1桌面环境25

2.3.2常用应用程序26

2.3.3文件系统管理27

.2.4 debian系统维护与软件的安装37

2.4.1 apt包管理系统的管理37

2.4.2软件包管理与安装命令38

2.4.3 dpkg底层的包管理工具39

2.4.4软件的其他安装方法41

2.5版本控制42

2.5.1 cvs概述42

2.5.2 debian中安装cvs服务器42

2.5.3 cvs的基本操作46

2.5.4远程cvs操作54

2.5.5 cvs使用举例54

2.5.6 wincvs的使用56

第3章makefile文件的编写66

3.1概述66

3.2 makefile的基本语法和简单实例67

3.2.1基本语法67

3.2.2 make命令行参数定义67

3.2.3简单实例71

3.3常用命令72

3.3.1 @命令72

3.3.2命令间的相互关联72

3.3.3忽略命令的错误73

3.3.4条件判断73

3.3.5定义命令序列73

3.4目标与规则74

3.4.1伪目标74

3.4.2静态目标75

3.4.3 makefile中的常用目标75

3.4.4后缀规则76

3.4.5模式规则76

3.4.6多目标与自动推导77

3.4.7 makefile规则77

3.4.8引入其他的makefile文件80

3.5变量81

3.5.1变量的定义81

3.5.2与变量相关的操作符82

3.5.3变量的应用83

3.5.4特殊变量84

3.6函数87

3.6.1函数的调用语法87

3.6.2字符串处理函数88

3.6.3文件操作函数90

3.6.4循环函数91

3.6.5条件函数92

3.6.6其他函数92

3.6.7 makefile工作过程总结94

第4章gdb调试技术95

4.1概述95

4.1.1简单的调试实例96

4.1.2 gdb启动退出与程序的加载98

4.1.3 gdb随机帮助与常用命令99

4.2 gdb常用查看命令101

4.2.1查看寄存器101

4.2.2查看栈信息101

4.2.3查看源程序103

4.2.4查看源代码的内存104

4.3变量操作命令105

4.3.1查看单个数据105

4.3.2输出格式105

4.3.3修改变量的值106

4.3.4全局变量与局部变量106

4.3.5表达式107

4.3.6数组107

4.3.7查看内存108

4.3.8变量自动显示108

4.4程序断点运行调试命令109

4.4.1断点操作109

4.4.2观察点操作110

4.4.3捕捉点操作110

4.4.4重载函数的断点操作111

4.4.5各种断点的维护111

4.5程序的单步调试技术113

4.6程序的信号调试技术114

4.7程序的多线程调试技术115

4.8程序控制命令116

4.8.1跳转控制命令116

4.8.2函数控制命令116

4.9 gdb环境设置命令117

4.9.1运行环境设置117

4.9.2显示设置117

4.9.3环境变量120

4.9.4搜索源代码121

4.9.5指定源文件的路径121

第5章linux常用编辑器122

5.1 vi编辑器122

5.1.1概述122

5.1.2多文件操作126

5.1.3光标移动命令127

5.1.4屏幕操作命令129

5.1.5寻找与替换131

5.1.6 vi的基本编辑命令及操作133

5.1.7多窗口操作138

5.1.8寄存器与缓冲区操作140

5.1.9与编程开发相关操作141

5.1.10配置设置143

5.1.11其他编辑命令144

5.2 emacs编辑器146

5.2.1概述146

5.2.2 emacs基本知识147

5.2.3对目录的操作154

5.2.4编辑远程机器上的文件157

5.2.5光标操作157

5.2.6基本编辑功能160

5.2.7查找与替换163

5.2.8多窗口操作164

5.2.9 emacs编程语言支持功能164

5.2.10 emacs设置172

5.2.11版本控制174

5.2.12随机帮助的使用177

5.2.13 emacs的其他功能178

第6章 atmega48/88/168硬件结构与功能179

6.1 atmega48/88/168概述179

6.1.1产品特性179

6.1.2引脚配置180

6.1.3结构框图183

6.1.4工作状态与mcu控制寄存器185

6.1.5 avr cpu通用工作寄存器186

6.2存储结构186

6.2.1 atmega48的程序存储器映像186

6.2.2 sram数据存储器187

6.2.3 eeprom数据存储器187

6.3系统时钟以及选择189

6.3.1时钟分类189

6.3.2时钟源190

6.3.3与系统时间相关寄存器191

6.4电源管理与休眠模式192

6.4.1工作模式192

6.4.2休眠模式控制寄存器193

6.4.3功耗最小化需要考虑的几个问题194

6.5时间器与看门狗195

6.5.1看门狗定时器195

6.5.2看门狗控制寄存器195

6.5.3看门狗安全操作时间序列196

6.5.4看门狗熔丝位197

6.5.5定时器的工作模式197

6.5.6 8位pwm定时器0199

6.5.7 16位pwm定时器1208

6.5.8 8位异步操作pwm定时器2216

6.6复位与中断221

6.6.1复位221

6.6.2中断223

6.6.3外部中断224

6.6.4 atmega48复位与中断向量226

6.6.5 atmega88复位与中断向量228

6.6.6 atmega168复位与中断向量231

6.6.7 i/o端口234

6.8 串行通信接口238

6.8.1 usart串行通信238

6.8.2 spi串行通信245

6.8.3两线串行通信249

6.9模拟比较器与模/数转换254

6.9.1模拟比较器254

6.9.2模/数转换器256

6.10熔丝位以及功能259

第7章 avrgcc开发技术262

7.1 debian中的avr交叉工具包262

7.1.1 avr交叉工具包的安装262

7.1.2使用linux平台的优势263

7.1.3准备工作263

7.1.4 avr gcc编译及makefile的编写264

7.1.5软件模拟调试265

7.2 avr的gnu下载工具266

7.2.1 ponyprog下载工具266

7.2.2 uisp下载工具269

7.2.3 stk200下载线电路图274

7.3 procyon avrlib的c语言库函数274

7.3.1 avrlib的下载与安装274

7.3.2与avr芯片内部设备相关函数275

7.3.3常用外部设备函数285

7.3.4常见通用设备的软件模拟297

7.3.5通用库函数298

7.3.6网络库函数305

第8章avr纯固件usb协议314

8.1 usb总线协议概述314

8.1.1基本概念314

8.1.2 usb总线状态322

8.1.3 usb物理层定义323

8.1.4 usb数据链路层定义325

8.2 开源纯软件模拟usb总线协议331

8.2.1纯软件usb协议功能特性331

8.2.2硬件电路331

8.2.3软件系统结构333

8.3纯软件usb应用-usbasp下载线345

8.3.1 usbasp功能概述345

8.3.2 usbasp硬件电路345

8.3.3 usbasp固件程序分析346

8.3.4 usbasp制作过程347

8.3.5 usbasp使用方法348

第9章 armgcc开发包procyon armlib351

9.1 atmel at91sam7s系列芯片概述351

9.1.1 at91sam7s的基本特点351

9.1.2 at91sam7s的基本结构353

9.1.3 arm7tdmi处理器概述355

9.1.4存储器356

9.1.5外设358

9.1.6定时器358

9.1.7外设数据传输控制器359

9.1.8高级中断控制器360

9.1.9并行输入/输出控制器361

9.1.10通信总线361

9.1.11脉宽调制控制器364

9.1.12 usb器件端口365

9.1.13模/数转换器366

9.2 arm交叉工具软件包366

9.2.1 gnuarm概述366

9.2.2 gnuarm应用程序binutils366

9.3 procyon armlib的c语言库函数388

9.3.1 armlib的下载与安装388

9.3.2与arm芯片内部设备相关函数390

9.3.3与avrlib相同的部分398

9.4 openocd398

9.4.1 openocd概述398

9.4.2 openocd的安装399

9.4.3 openocd芯片的配置文件400

9.4.4 openocd芯片配置命令400

9.4.5 openocd命令403

9.4.6 openocd应用举例405

9.4.7 wiggler并口jtag408

参考文献409

更多简介内容

推荐帖子

【SC8905 EVM测评】+单片机与SC8905进行I2C通讯
    经过反复测试,单片机与SC8905评测板之间的I2C通讯测试已经完全成功,我通过单片机每隔2秒改变一次VBUS输出电压,按照给我的任务在4V和6V两个档位周期变动,也就是每隔2秒改变一次VBUS的输出电压,之所以选择2秒为周期,主要是考虑时间太短的话,我的数字万用表怕反映慢跟不上,时间太长又怕不直观。I2C通讯的代码详见我的另一个帖子:http://bbs.eeworld.com.cn/t
hujj 国产芯片交流
【树莓派4B测评】树莓派4远程桌面连接方法
本帖最后由 lb8820265 于 2020-9-15 22:44 编辑 玩树莓派需要一个显示屏,而使用远程桌面可以有效的解决这个问题。下面来介绍两种方式进行远程桌面连接。 使用树莓派自带的VNC连接 1. 首先使能VNC,开始-->首选项-->Raspberry Pi Configuration-->Interfaces,然后如下图使能VNC。之后在状态栏会出现一个V
lb8820265 开发板测评专版
PCB走线与过孔的电流承载能力
本帖最后由 qwqwqw2088 于 2020-9-28 08:25 编辑     简介:使用FR4敷铜板PCBA上各个器件之间的电气连接是通过其各层敷着的铜箔走线和过孔来实现的。 由于不同产品、不同模块电流大小不同,为实现各个功能,设计人员需要知道所设计的走线和过孔能否承载相应的电流,以实现产品的功能,防止过流时产品烧毁。     文中介绍设计和测试FR4敷铜板上走线和过孔的电
qwqwqw2088 PCB设计
TMS320F280049C 可编程增益放大器 Programmable Gain Amplifier (PGA)
可编程增益放大器(PGA)用于放大输入电压以增加后级ADC和CMPSS模块的动态范围。 集成的PGA有助于降低成本和许多传统上需要外部独立放大器的控制应用的设计工作。片上集成确保PGA与下游ADC和CMPSS模块兼容。软件可选择的增益和滤波器设置使PGA能够适应各种性能需求。 特性: 四种可编程增益模式:3x、6x、12x、24x 内部由VDDA和VSSA供电 基于硬件的微调,以减少
fish001 微控制器 MCU
Small Cell必将产生大影响
Small Cell基本上是一种覆盖范围和尺寸均小于传统大型基站的移动无线装置。那么,为什么覆盖范围更小且必要构成设备的功能丰富性不及大型小区的Small Cell反而能够获得日益成长呢?此处,需要注意的重要一点是,“Small Cell”一词并非标准用法,其有时可表示上至尺寸略小的非传统基站,下至分布式天线系统(DAS)和5G原型基站等新兴技术系统的所有此类设备。虽然人们对Small Cell存
zqy1111 RF/无线
又有新板到啦~~杰发AC7801X电机demo板来了,测评活动即将上线...
杰发AC7801X板子到啦~特别的漂亮~来给大家晒晒图~~活动会赶在国庆前发布,欢迎大家来参加呀呀呀~~   更多的资料请点击这里:>>>>>>>>>>>         杰发简介 合肥杰发科技有限公司(AutoChips Inc.)成立于2013年,是北京四维图新科技股份有限公司(股票代码:002405.SZ)全资子公司,下
okhxyyo 国产芯片交流

评论

登录/注册

意见反馈

求资源

回顶部

datasheet推荐 换一换

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })