pdf

GNU GCC嵌入式系统开发

  • 1星
  • 日期: 2020-10-01
  • 大小: 38.12MB
  • 所需积分:1分
  • 下载次数:27
  • 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

推荐帖子 最新更新时间:2021-07-30 07:43

【Simple Switcher 25周年】讲讲您和易电源的故事,还有免费样片快速申请!
距离第一代易电源产品上市已经过去25年了。经过这25年的发展,Simple Switcher易电源优异的EMI性能让你无需担心电源的EMI问题,超高的效率和极低的热阻不再让热设计是难题,Webench助您轻松使用电源模块并提交分析报告。 活动一:点击注册成为my.ti会员, 即可申请易电源热门产品免费样片! 活动二: 在这25年中,您和易电源有着怎样的故事呢?不管是工作还是学习中让
EEWORLD社区 模拟与混合信号
motorWare 功能模块点、浮点模式下的问题
在motorWare 例程中,模块void updateGlobalVariables_motor(CTRL_Handle handle, ST_Handle sthandle)在fpu32和定点方式先 定义的几个float 参数: 在定点模式下为: gMotorVars.MagnCurr_A = EST_getIdRated(obj->estHandle); // get the rot
zhoumin 微控制器 MCU
【C标准库里那些好玩的东西】strcoll:strcpy的表亲
晚上在看昨天回复的一个帖子,楼主提到“合理使用库函数能否......” 其实有点小感动:还是有人愿意好好研究 C标准库。 因为我自己曾遇到不少人,对C标准库的了解程度和重视程度 低得让人无语。 他们曾说出以下言论: 1.线程锁 和 信号量 只有操作系统才有(甚至有人说只有windows才有)...... 还有很多人,因为不知道其实 有 strstr 这些函数,要自己费尽去实现一次,还
辛昕 编程基础
5438A益出的问题
67 906 bytes of CODE  memory  5 295 bytes of DATA  memory (+ 181 absolute ) 14 816 bytes of CONST memory现象就是能DEBUG,但是就是一直停在data16――memero里面,这样怎么就溢出了的,不是16K的吗?堆栈我设置是:160、160、80 ,即使设置再大也没什么用。如果RAM的数组改小
zz 微控制器 MCU
MSP430触摸按键的原理及实现
对于现在的产品中设计来说,有些需要触摸按键,目前许多MCU都实现了触摸功能。下面介绍一下MSP430触摸按键的原理及实现。 1、实现基本的原理 通过两个独立的波形发生比较。一个是信号源是不变的,另一个是随感应电容变化而变化 。 2、实现方法 方法1、Pin oscillator 方法2、迟缓振荡器RO 迟缓振荡器方法是通过计数延迟器在一个门限时间内的次数。可以在有延迟振荡器或者比较器的
qwerghf 微控制器 MCU
关于ADI模拟开关adg1414突然复位的问题。
电路如图所示:       一个用SPI总线控制的8路单刀单掷模拟开关,控制字非常简单就是送一个字节,字节的每一位控制一个模拟开关的通断,发送控制字选择增益。输入信号使用函数信号发生器,但输入信号固定时没有任何问题,如预期一样切换了增益。但是调节函数信号的输出至换档位的时候(如正弦信号的有效值由700mV切换到710mV时,可以听见很明显的函数信号发生器内部继电器切换档位的声音),运放的输出
鬼眼刀道 ADI参考电路

评论

yuazhang
非常不错,清晰,完整。数签很全。
2021-06-20 11:44:02回复
Ryan2018
资料很好,正在学习嵌入式开发,谢谢分享
2021-06-19 18:40:04回复
ksqb2098295
谢谢分享,书籍很好,值得学习
2021-06-19 09:34:04回复
潜水得鱼
谢谢分享,书籍很好,还有书签
2021-06-13 08:52:48回复
登录/注册

意见反馈

求资源

回顶部

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

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

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 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); }) })
×