热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

裸机C编程:嵌入式系统C程序设计

编号:
wx1203946085
销售价:
¥87.12
(市场价: ¥99.00)
赠送积分:
87
数量:
   
商品介绍

本书由拥有 50 余年嵌入式系统编程经验的 Stephen Oualline 撰写,经电气 / 电子工程领域专家 Frank Duignan 审校,专业性与权威性兼具。内容围绕嵌入式开发核心需求展开,既系统讲解嵌入式系统基础知识、开发环境搭建,又深入剖析 C 语言在动态内存管理、中断控制、寄存器操作等场景的实战技巧,且全程以 STM32F030x4 处理器为实例,结合编译原理、链接器应用等底层逻辑,为不同阶段开发者提供从理论到实践的完整知识体系,是嵌入式 C 语言开发领域兼具深度与实用性的专业参考用书。

本书是一部专注于嵌入式系统编程的指南,旨在帮助你深入探索嵌入式系统的奥秘,掌握C语言在嵌入式领域的应用技巧,从而在嵌入式开发领域取得成功。全书分为两部分:第一部分(第1~12章)介绍了嵌入式系统的基础知识和开发环境的搭建,包括安装必要的工具和软件、配置开发环境等内容,通过一步步的实践示例,带你快速入门嵌入式系统编程,了解嵌入式程序的编写流程和基本技巧;第二部分(第13~18章)更深入地探讨了C语言在嵌入式系统中的高级应用,从动态内存管理、文件I/O操作、命令行参数处理到模块化编程等方面,全面介绍了C语言在嵌入式系统中的实际应用技巧和最佳实践,帮助你进一步提升编程技能,应对更复杂的编程任务。

目  录<br />译者序<br />前言<br />关于作者<br />关于技术审校<br />第一部分 嵌入式编程<br />第1章 Hello World  3<br />1.1 安装GCC  3<br />1.2 下载STM32系统工作台  4<br />1.3 我们的第一个程序  4<br />1.3.1 编译程序  5<br />1.3.2 犯错  5<br />1.3.3 理解程序  6<br />1.3.4 添加注释  7<br />1.4 改进程序和构建流程  7<br />1.4.1 make 程序  8<br />1.4.2 编译器标志  9<br />1.5 编译器在幕后的工作方式  9<br />1.5.1 预处理器  10<br />1.5.2 编译器  10<br />1.5.3 汇编器  11<br />1.5.4 链接器  12<br />1.6 在Makefile中添加内容  13<br />1.7 总结  14<br />1.8 问题  15<br />第2章 集成开发环境介绍  16<br />2.1 使用STM32的System <br />Workbench  16<br />2.1.1 启动IDE  17<br />2.1.2 创建Hello World  18<br />2.1.3 调试程序  21<br />2.2 IDE为我们做了什么  24<br />2.3 导入本书的编程示例  25<br />2.4 总结  25<br />2.5 编程问题  26<br />2.6 其他问题  26<br />第3章 嵌入式系统编程  27<br />3.1 NUCLEO-F030R8开发板  27<br />3.1.1 对开发板进行编程和调试  28<br />3.1.2 配置开发板  28<br />3.2 建立嵌入式项目  30<br />3.3 你的第一个嵌入式程序  33<br />3.3.1 初始化硬件  33<br />3.3.2 GPIO引脚编程  34<br />3.3.3 切换LED  35<br />3.3.4 构建完成的程序  35<br />3.4 探索构建过程  36<br />3.5 探索项目文件  38<br />3.6 调试应用程序  39<br />3.7 逐步执行程序  41<br />3.8 总结  42<br />3.9 编程问题  43<br />3.10 其他问题  43<br />第4章 数字和变量  44<br />4.1 使用整数  44<br />4.1.1 声明保存整数的变量  45<br />4.1.2 给变量赋值  46<br />4.1.3 初始化变量  47<br />4.2 整数大小和表示  47<br />4.2.1 数字表示  49<br />4.2.2 标准整数  50<br />4.2.3 无符号整数类型  51<br />4.2.4 溢出  52<br />4.2.5 有符号整数类型中的补码<br />表示  54<br />4.3 缩写操作符  55<br />4.4 使用位操作控制内存映射的I/O<br />寄存器  56<br />4.4.1 或  56<br />4.4.2 与  57<br />4.4.3 非  58<br />4.4.4 异或  58<br />4.4.5 位移  59<br />4.5 定义位的含义  60<br />4.5.1 同时设置两个位的值  61<br />4.5.2 关闭一个位  61<br />4.5.3 检查位的值  62<br />4.6 总结  64<br />4.7 编程问题  64<br />第5章 决策和控制语句  65<br />5.1 if语句  65<br />5.2 if/else语句  67<br />5.3 循环语句  67<br />5.3.1 while循环  68<br />5.3.2 for循环  69<br />5.4 使用按钮  70<br />5.4.1 初始化  71<br />5.4.2 选择下拉电路  71<br />5.4.3 获取按钮的状态  73<br />5.4.4 运行程序  73<br />5.5 循环控制  74<br />5.5.1 break语句  74<br />5.5.2 continue语句  74<br />5.6 反模式  75<br />5.6.1 空的while循环  75<br />5.6.2 while中的赋值  76<br />5.7 总结  76<br />5.8 编程问题  77<br />第6章 数组、指针和字符串  78<br />6.1 数组  78<br />6.1.1 底层细节:指针  80<br />6.1.2 数组和指针算术  83<br />6.1.3 数组溢出  84<br />6.2 字符和字符串  86<br />6.3 总结  88<br />6.4 编程问题  88<br />第7章 局部变量和函数  89<br />7.1 局部变量  89<br />7.2 隐藏变量  90<br />7.3 函数  91<br />7.4 堆栈帧  92<br />7.5 递归  95<br />7.6 编程风格  96<br />7.7 总结  97<br />7.8 编程问题  97<br />第8章 复杂数据类型  98<br />8.1 枚举  98<br />8.2 预处理器技巧和枚举  99<br />8.3 结构体  101<br />8.3.1 内存中的结构体  103<br />8.3.2 访问未对齐的数据  104<br />8.3.3 结构体初始化  106<br />8.3.4 结构体赋值  107<br />8.3.5 结构体指针  108<br />8.3.6 结构体命名  109<br />8.4 联合体  110<br />8.5 创建自定义类型  111<br />8.6 结构体和嵌入式编程  113<br />8.7 typedef  114<br />8.7.1 函数指针和typedef  115<br />8.7.2 typedef和struct  116<br />8.8 总结  117<br />8.9 编程问题  117<br />第9章 STM上的串口输出  119<br />9.1 逐字符写入字符串  119<br />9.2 串行输出  121<br />9.2.1 串行通信简史  122<br />9.2.2 串行Hello World  123<br />9.2.3 UART初始化  124<br />9.2.4 发送一个字符  126<br />9.3 与设备通信  131<br />9.3.1 Windows  132<br />9.3.2 Linux和macOS  133<br />9.4 总结  133<br />9.5 编程问题  134<br />第10章 中断  135<br />10.1 轮询与中断  135<br />10.2 串行I/O的中断  136<br />10.3 中断例程  136<br />10.4 使用中断写入字符串  137<br />10.4.1 程序细节  140<br />10.4.2 中断问题  143<br />10.5 使用缓冲区来提高速度  144<br />10.5.1 发送函数  145<br />10.5.2 中断例程  146<br />10.5.3 完整程序  147<br />10.5.4 问题  149<br />10.6 总结  153<br />10.7 编程问题  153<br />第11章 链接器  154<br />11.1 链接器的作用  155<br />11.2 编译和链接内存模型  155<br />11.2.1 理想的C语言模型  155<br />11.2.2 非标准部分  159<br />11.3 链接过程  160<br />11.4 链接器定义的符号  161<br />11.5 重定位和链接目标文件  162<br />11.6 链接器映射文件  163<br />11.7 高级链接器的用法  164<br />11.7.1 用于“永久”存储的<br />闪存  164<br />11.7.2 多个配置项  171<br />11.7.3 定制示例  172<br />11.7.4 固件升级  172<br />11.8 总结  173<br />11.9 编程问题  173<br />第12章 预处理器  174<br />12.1 简单宏  174<br />12.1.1 参数化宏  176<br />12.1.2 代码宏  177<br />12.2 条件编译  180<br />12.3 符号的定义位置  181<br />12.3.1 命令行符号  182<br />12.3.2 预定义符号  182<br />12.4 包含文件  183<br />12.5 其他预处理器指令  183<br />12.6 预处理器技巧  184<br />12.7 总结  185<br />12.8 编程问题  185<br />第二部分 用于大型机器的<br />C语言编程<br />第13章 动态内存  189<br />13.1 基本堆分配和释放  189<br />13.2 链表  191<br />13.2.1 添加节点  192<br />13.2.2 打印链表  194<br />13.2.3 删除节点  195<br />13.2.4 整合所有内容  196<br />13.3 动态内存问题  198<br />13.4 Valgrind和GCC Address <br />Sanitizer 工具  199<br />13.5 总结  200<br />13.6 编程问题  201<br />第14章 缓冲文件I/O  202<br />14.1 printf 函数  202<br />14.1.1 编写ASCII表  203<br />14.1.2 写入预定义文件  204<br />14.2 读取数据  204<br />14.3 打开文件  206<br />14.4 二进制I/O  207<br />14.5 缓冲和刷新  209<br />14.6 关闭文件  211<br />14.7 总结  211<br />14.8 编程问题  211<br />第15章 命令行参数和原始<br />I/O  212<br />15.1 命令行参数  212<br />15.2 原始I/O  213<br />15.2.1 使用原始I/O  214<br />15.2.2 使用二进制模式  216<br />15.3 ioctl  217<br />15.4 总结  217<br />15.5 编程问题  218<br />第16章 浮点数  219<br />16.1 什么是浮点数  219<br />16.1.1 浮点类型  219<br />16.1.2 自动转换  220<br />16.2 浮点数的问题  220<br />16.2.1 舍入误差  220<br />16.2.2 精度位数  221<br />16.3 无穷大、NaN和次正规数  221<br />16.4 实现  223<br />16.5 替代方案  223<br />16.6 总结  226<br />16.7 编程问题  226<br />第17章 模块化编程  227<br />17.1 简单的模块  227<br />17.1.1 简单模块的问题  228<br />17.1.2 制作模块  231<br />17.2 好的模块有哪些特点  231<br />17.3 命名空间  232<br />17.4 库  232<br />17.4.1 ranlib和库链接  235<br />17.4.2 确定性与不确定性库  237<br />17.5 弱符号  237<br />17.6 总结  238<br />17.7 编程问题  239<br />第18章 后记  240<br />18.1 学会写作  240<br />18.2 学会阅读  240<br />18.3 合作与创造性借鉴  241<br />18.4 有用的开源工具  241<br />18.4.1 Cppcheck  241<br />18.4.2 Doxygen   241<br />18.4.3 Valgrind  242<br />18.4.4 SQLite  242<br />18.5 永不停止学习  242<br />附录 项目创建清单  243

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111792017
条码 9787111792017
编者 [美]斯蒂芬·欧林(Stephen Oualline) 著 黄俊彬 译
译者
出版年月 2025-10-01 00:00:00.0
开本 16开
装帧 平装
页数 248
字数 368
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]