本书主要介绍针对嵌入式系统基于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
计算机图形学实验之区域填充实验报告关键字:计算机图形学实验区域填充实验报告
1
关于在线报修系统:一、系统简介在线报修报修系统是采用asp.net2.0+ACCESS开发,代码简洁,运行速度快,功能实用,本系统仅限于本单位局域网使用。
在单位使用本系统,部门的设备若出现故障,只需登陆网上报修系统,轻点鼠标,填写相关信息,即可完成报修,工作人员就会及时响应,认真处理。
二、功能说明1、在前后报修时填写报修人、联系电话、报修地点、故障描述等信息既可。
2、管理员可以在后台进行维修回复、可以删除报修记录、还可以修改后台密码和公告内容等。
3、在前后台都可以输入关键字在数据库中快速地搜索。
4、导出Excel功能5、后台设备类别管理6、后台维修人管理7、设备类型选项下拉列表(如:计算机、应用软件、打印机等)8、前台登记的时候设备类型为下拉方式,后台也增加相应的功能9、后台页面修改不单独开窗口,原窗口打开自动更新10、后台账号:admin密码:admin三、地址http://.../index.asp
2024/8/4 3:11:34 4.24MB B/S 在线报修 免费 破解
1
因为空气质量的恶化,阴霾天气现象出现增多,危害现象加重。
中国不少地区把阴霾天气现象并入雾一起作为灾害性天气预警预报。
统称为“雾霾天气”。
雾霾主要由PM2.5、PM10、PM0.1以及重金属镍砷铬铅等颗粒组成。
有关雾霾的重大事件层出不穷,如1952年伦敦烟雾事件,伦敦杀人雾在四天内夺走了4000多条人命;
还有2013年初北京肆虐横行的雾霾事件,轰动一时。
因此,对PM2.5的测量显得越来越重要。
本设计采用STC89C51单片机为控制中心,由GP2Y1010AU0F灰尘传感器测量空气粉尘浓度,LCD1602显示屏显示当前空气粉尘浓度。
并会根据设置好的报警值报警提示,对应颜色指示灯点亮,该系统电路简单、工作稳定、集成度高,调试方便,测试精度高,具有一定的实用价值。
关键字:PM2.5、单片机、粉尘浓度、GP2Y1010AU0F
2024/7/25 19:05:29 1.72MB 空气质量
1
2DPSK调制与解调在通信系统中具有重要的作用。
通过调制,不仅可以进行频谱搬移,把调制信号的频谱搬移到所希望的位置上,从而将调制信号转换成适合于信道传输或便于信道多路复用的已调信号,在通信系统的发送端通常需要有调制过程,即为解调过程。
本次课程设计主要采用SystemView的基本操作,从而实现2DPSK的仿真。
关键字:SystemView2DPSK相干解调
2024/7/24 12:26:30 251KB SystemView 2DPSK
1
XilinxDesignConstraints(XDC)文件的UltraEdit高亮文件,自己写的,效果可以,语法高亮方面基本上囊括了所有关键字(截至2020.12),但是csdn无法发截图,无法给大家发效果图,有需要的朋友欢迎下载哈(*^_^*),建议采用Ultraedit15及以上版本,15以下版本也可以用,但颜色效果可能会差一点点。
2024/7/6 17:02:51 3KB vivado xilinx fpga/cpld
1
达梦和oracle的差异说明,关键字汇总,示例说明;
2024/7/6 1:41:51 24KB 达梦 oracle 差异
1
查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。
查找表(SearchTable):由同一类型的数据元素(或记录)构成的集合关键字(Key):数据元素中某个数据项的值,又称为键值。
主键(PrimaryKey):可唯一地标识某个数据元素或记录的关键字。
查找表按照操作方式可分为:也就是数据不排序的线性查找,遍历数据元素。
算法分析:最好情况是在第一个位置就找到了,此为O(1);
最坏情况在最后一个位置才找到,此为O(n);
所以平均查找次数为(n+1)/2。
算法核心:在查找表中不断取中间元素与查找值进行比较,以二分之一的倍率进行表范围的缩小。
二分查
1
Lucene.Net只是一个全文检索开发包,不是一个成型的搜索引擎它提供了类似SQLServer数据库正式版中的全文检索功能的索引库你把数据扔给Lucene.Net,【Lucene.Net只针对文本信息建立索引,所以他只接收文本信息,如果不是文本信息,则要转换为文本信息】它会将文本内容分词后保存在索引库中,当用户输入关键字提交查询时,Lucene.Net从索引库中检索关键字数据,所以搜索速度非常快,适合于用户开发自己站内的搜索引擎Q:分词A:即将"不是所有痞子都叫一毛"文本内容通过分词算法分割成为“不是”“所有”“痞子”“都”“叫”"一毛"。
但是Lucene.Net内置分词算法对中文支持不是很好,以下会使用国内较为流行的分词算法--盘古分词
2024/7/1 18:18:58 2.66MB lucene.net 盘古 分词
1
词法分析是从左向右扫描每行源程序的符号,拼成单词,换成统一的机内表示形式——TOKEN字,送给语法分析程序。
TOKEN字是一个二元式:(单词种别码,自身值)。
PL/0语言单词的种别码用整数表示,可参考教材或自行设定;
单词自身值按如下规则给出:(1)标识符的自身值是它在符号表的入口地址。
(2)常数的自身值是常数本身(或它的二进制数值)。
(3)关键字和界限符的自身值为本身。
2024/6/26 22:31:13 146KB 编译原理
1
共 393 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡