本书主要介绍针对嵌入式系统基于C语言的软件项目开发流程、较为复杂的C语言编程知识与技巧、编程风格及调试习惯,并通过对一个具体的软件模块(ASIXWindowGUI)的分析,介绍分析代码的方法以及设计软件系统需要考虑的各要素。
本书以实际项目中的代码为例来进行介绍,详细分析在嵌入式系统开发中程序员应该注意的方法、技巧和存在的陷阱。
本书适合用作学习嵌入式系统的高年级本科生或硕士研究生的教学用书,也可作为从事嵌入式系统编程的软、硬件工程师的技术参考用书。
嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各行各业的具体应用相结合的产物,这就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
然而,嵌入式系统是一个非常综合的技术,在学科上涉及电子科学与技术、计算机科学与技术、微电子学等众多领域,在系统的架构上涉及数字电路、模拟电路、嵌入式微处理器、嵌入式操作系统、底层驱动等技术。
因此,虽然为了满足业界对人才培养的要求,越来越多的高校相关专业开始在专科、本科、硕士培养计划中开设嵌入式系统方面的课程,但是作为一个新兴的课程体系,关于嵌入式系统教学过程中相关先修课程与基础知识的准备、教学内容(包括硬件平台与软件平台)的选择、实验教学与实践环节组织等问题依然处于争论和探索阶段。
通过对相关院校的嵌入式系统教学的调研以及在东南大学电子科学与工程学院、集成电路学院嵌入式系统教学实践的基础上,我们发现现有电子类本科专业教学计划中存在与嵌入式系统教学要求相脱节的因素,其中一个比较突出的问题就是电子类学生软件基础比较弱。
虽然电子类专业的学生都先修过“C编程语言”、“计算机原理”等课程,但是缺乏大型软件项目的开发经验,尤其缺乏操作系统方面的相关知识。
这些都为嵌入式系统课程的教学带来了一定的困难,因此在嵌入式系统课程体系中增加一些用于弥补学生软件知识的课程就非常有必要了。
凌明副教授2005年开始在集成电路学院开设的“高级嵌入式系统C编程”硕士选修课无疑是为解决这个问题而进行的有益尝试,而通过5届学生课程的讲解也取得了非常好的教学效果。
虽然关于嵌入式系统方面的专业书籍出版了很多,但是适合教学的教材可谓凤毛麟角,因此在我的建议下凌明老师开始将课程讲义的主要内容进行了系统地整理,编写成为面向本科高年级和硕士阶段教学的这本教材。
全书分为9章。
第1章简要回顾了C语言的发展历史并给出了作者对于学习C语言的一些建议和参考书目。
第2章和第3章将C语言的主要语言要素作了提纲挈领式的总结和复习,虽然不是一本C语言的入门教科书,但是出于对全书的系统性以及教学的考虑,作者用了一定的篇幅将C语言中的主要内容进行了总结,其中第2章重点介绍了C语言的关键字与运算符,第3章则重点介绍了C语言的函数、标准C库以及相关内容。
第4章详细介绍了嵌入式系统软件开发的基本流程和原理,并针对ARM处理器作了比较详细的介绍。
第5章是全书的重点和难点之一,详细介绍了C语言中指针使用的高级技巧以及程序员需要规避的内存“陷阱”,本章的后半部分还以实际的案例讲解了动态内存的分配与释放,然后以ASIXWindow的实际案例进行了构建复杂数据结构的讲解。
第6章则详细介绍了嵌入式系统中底层驱动的编写技巧以及相关中断处理程序的编写技巧,尤其是针对函数重入的问题进行了细致的分析与讨论,本章的后半部分还以一个实际的键盘驱动以及UBOOT为例进行了案例讲解。
在第7章中,作者介绍了嵌入式C语言编程需要遵循的编程规范和编码风格,本章的内容几乎在其他所有教科书中都没有涉及,但实际上对于工程项目的开发而言,本章的内容又是非常重要和实用的。
只要是软件就离不开调试,初学者往往在调试代码的过程中不知所措,因此在第8章中,作者介绍了嵌入式软件调试的基本技巧和常用工具。
本章的主要内容也是本书的特色之一,作者从工程的角度比较系统地介绍了嵌入式软件开发调试过程中常用的方法,这对于初学者是非常有帮助的。
第9章则以东南大学国家专用集成电路系统工程技术研究中心自主研发的ASIXWindow嵌入式图形用户界面(GUI)作为一个综合案例,详细讲解了一个复杂软件系统的总体设计架构。
本书的特色之处是强调实际嵌入式软件项目中常用的技巧和方法,并融合了作者在所从事的科研项目中总结出来的经验和心得。
本书适合电子类专业本科高年级和相关专业硕士的教学,可以作为相关选修课程的教材或主要参考用书,另外由于本书内容的实战性很强,因此也非常适合作为广大嵌入式系统工程师的参考用书。
2024/8/12 3:19:49 18.94MB C语言 C C++ 嵌入式
1
VastSpace自述文件**本文件为草稿。
这是什么?VastSpace是3D实时策略游戏引擎,我一直在开发该游戏来测试想要尝试的想法。
产品特点OpenGL渲染的宇宙,包括空间站,行星,恒星和体积星系。
服务器-客户端模型中通过TCP/IP进行的网络游戏(正在进行中)。
嵌入式脚本语言可进行大量修改。
动态链接的MOD框架。
启用HDR以实现逼真的照明水平。
船舶可以超速行驶到数个光年远的太阳系。
屏幕截图其他截图可以在看到支持平台Windows客户端已在Windows7/8和10中进行了测试。
您将需要支持OpenGL的合适的图形板。
经过测试的主板是Rad
2024/7/21 6:28:19 41.59MB game-engine bullet GameengineC++
1
该文档是嵌入式C语言面试常见笔试面试题,包括C基础知识部分,数据结构部分,嵌入式部分等。
2024/6/29 19:28:49 67KB C语言 C面试题 C笔试题
1
《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记《嵌入式LinuxC语言应用程序设计》读书笔记
2024/4/23 16:18:33 95KB 嵌入式 Linux C语言 笔记
1
经典嵌入式C语言教程入门与精通PDF清晰版。
很好的教材。
2023/8/20 6:26:25 5.99MB 经典 嵌入式 C语言 教程
1
此文档是我总体参考华为嵌入式C语言,MISRA-C-:2004,ISO/IEC9899:1990.Progra妹妹inglanguages-C等文献,松散自身责任阅历以及对于C语言的知道做的一个嵌入式C语言编程尺度。
2023/5/2 3:57:07 220KB 嵌入式软件 C语言 编程规范
1
本书从嵌入式开拓角度动身,以Linux操作体系为开拓平台,将藏匿在体系开拓眼前的对于C语言、盘算机组成原理、盘算机操作体系等方面的机制以及学识娓娓道来,不光能让读者知其然,更要让读者知其所以然,揭开嵌入式LinuxC体系开拓眼前鲜为人知的怪异,并让这些学识再反传染于编程实际,从而帮手读者写出高品质的嵌入式LinuxC代码。
详尽说来,本书首要谈判了搜罗嵌入式C语言低级编程、嵌入式Linux体系编程、多责任处置机制、收集编程等多个方面的话内容
2023/3/23 14:22:46 97.27MB Linux
1
嵌入式LinuxC语言应用程序设计,华清远见嵌入式培训中心编著,本书共13章,第一章次要讲解嵌入式系统的概念,第二、三章次要讲解如何构建嵌入式Linux的开发环境及常见开发工具的使用方法,第四至第八章讲解的是嵌入式LinuxC于洋的语法及常见数据结构,第九至第十二章详细讲解了嵌入式Linux中的文件I/O开发、进程线程开发、网络开发和驱动开发等,第十三章视频监控系统是一个综合性的实例。
2019/7/7 12:58:01 6.58MB 嵌入式 Linux
1
嵌入式C语言技术实战开发一书的源代码,可以下载阅览后再决定能否购买本书学习!
2015/4/9 15:41:44 65KB Linux C语言 Linux应用
1
一、ESQL/C材料(完全版)一第一节什么是嵌入SQL语言?31.1嵌入SQL程序的组成元素31.2什么是静态SQL和动态SQL?41.3什么是SQLCA?41.4什么是SQLDA?5第二节SYBASESQLSERVER嵌入式SQL语言52.1一个嵌入SQL语言的简单例子52.2嵌入SQL的处理过程62.3嵌入SQL语句总览72.3.1宿主变量72.3.2连接数据库122.3.3数据的查询和修改132.3.4游标的使用132.3.5SQLCA152.3.6WHENEVER162.3.7批处理182.3.8事务182.4动态SQL语句182.4.1动态修改192.4.2动态游标202.4.3SQLDA232.4.4DESCRIBE语句272.5两个例子程序272.5.1TELECOM程序272.5.2ADHOC程序29第三节IBMDB2嵌入SQL语言353.1一个简单示例353.2嵌入SQL语句373.2.1宿主变量373.2.2单行查询393.2.3多行查询393.2.4插入、删除和修改操作403.2.5SQLCA433.2.6事务453.3DB2的嵌入SQL程序处理过程463.4DB2的动态SQL嵌入语句533.4.1基本方法533.4.2动态游标553.4.3SQLDA55第四节ORACLE数据库的嵌入SQL语言664.1基本的SQL语句664.1.1宿主变量和指示符664.1.2查询684.1.3修改数据684.1.4游标684.2嵌入PL/SQL714.3动态SQL语句724.3.1ORACLE动态SQL语句的一些特点724.3.2使用动态SQL的四种方法724.3.3SQLDA75第五节INFORMIX的嵌入SQL/C语言895.1一个简单的入门例子895.2宿主变量915.3嵌入SQL的处理过程965.4动态SQL语言965.4.1SQLDA97第六节MICROSOFTSQLSERVER7嵌入式SQL语言1056.1一个嵌入SQL语言的简单例子1056.2嵌入SQL的处理过程1066.3嵌入SQL语句1126.3.1声明嵌入SQL语句中使用的C变量1126.3.2连接数据库1156.3.3数据的查询和修改1156.3.4游标的使用1166.3.5SQLCA1176.3.6WHENEVER1186.4动态SQL语句1196.4.1动态修改1196.4.2动态游标1206.4.3SQLDA1226.4.4DESCRIBE语句1306.5API130第六章嵌入式SQL(E-SQL)简介
2017/4/26 6:41:42 945KB SQL C
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡