本书主要介绍针对嵌入式系统基于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
谭浩强-C++程序设计内容目录:第1篇基本知识第1章C++的初步知识*1.1从C到C++*1.2最简单的C++程序1.3C++程序的构成和书写形式1.4C++程序的编写和实现1.5关于C++上机实践第2章数据类型与表达式2.1C++的数据类型2.2常量2.3变量2.4C++的运算符2.5算术运算符与算术表达式2.6赋值运算符与赋值表达式2.7逗号运算符与逗号表达式第2篇面向过程的程序设计第3章程序设计初步3.1面向过程的程序设计和算法3.2C++程序和语句3.3赋值语句3.4C++的输入与输出3.5编写顺序结构的程序3.6关系运算和逻辑运算3.7选择结构和if语句3.8条件运算符和条件表达式3.9多分支选择结构和switch语句3.10编写选择结构的程序3.11循环结构和循环语句3.12循环的嵌套3.13break语句和continue语句3.14编写循环结构的程序第4章函数与预处理4.1概述4.2定义函数的一般形式4.3函数参数和函数的值4.4函数的调用*4.5内置函数*4.6函数的重载*4.7函数模板*4.8有默认参数的函数4.9函数的嵌套调用4.10函数的递归调用4.11局部变量和全局变量4.12变量的存储类别4.13变量属性小结4.14关于变量的声明和定义4.15内部函数和外部函数4.16预处理命令第5章数组5.1数组的概念5.2一维数组的定义和引用5.3二维数组的定义和引用5.4用数组名作函数参数5.5字符数组*5.6C++处理字符串的方法——字符串类与字符串变第6章指针6.1指针的概念6.2变量与指针6.3数组与指针6.4字符串与指针6.5函数与指针6.6返回指针值的函数6.7指针数组和指向指针的指针6.8有关指针的数据类型和指针运算的小结*6.9引用第7章自定义数据类型7.1结构体类型7.2共用体7.3枚举类型7.4用typedef声明类型第3篇基于对象的程序设计第8章类和对象8.1面向对象程序设计方法概述8.2类的声明和对象的定义8.3类的成员函数8.4对象成员的引用8.5类的封装性和信息隐蔽8.6类和对象的简单应用举例第9章关于类和对象的进一步讨论9.1构造函数9.2析构函数9.3调用构造函数和析构函数的顺序9.4对象数组9.5对象指针9.6共用数据的保护9.7对象的动态建立和释放9.8对象的赋值和复制9.9静态成员9.10友元9.11类模板第10章运算符重载10.1什么是运算符重载10.2运算符重载的方法10.3重载运算符的规则10.4运算符重载函数作为类成员函数和友元函数10.5重载双目运算符10.6重载单目运算符10.7重载流插入运算符和流提取运算符10.8不同类型数据间的转换第4篇面向对象的程序设计第11章继承与派生11.1继承与派生的概念11.2派生类的声明方式11.3派生类的构成11.4派生类成员的访问属性11.5派生类的构造函数和析构函数11.6多重继承11.7基类与派生类的转换11.8继承与组合11.9继承在软件开发中的重要意义第12章多态性与虚函数12.1多态性的概念12.2一个典型的例子12.3虚函数12.4纯虚函数与抽象类第13章输入输出流13.1C++的输入和输出13.2标准输出流13.3标准输入流13.4文件操作与文件流13.5字符串流
1
1、实验目的通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解。
2、实验内容(1)用C语言来实现对N个进程采用动态优先算法的进程调度;
(2)每个用来标识进程的进程控制块 PCB用结构来描述,包括以下字段:进程标识符id进程优先数priority,并规定优先数越大的进程,其优先权越高;
进程已占用的CPU时间cputime ;
进程还需占用的CPU时间alltime,当进程运行完毕时,alltime变为0;
进程的阻塞时间startblock,表示当进程再运行startblock个时间片后,进程将进入阻塞状态;
进程被阻塞的时间blocktime,表示已阻塞的进程再等待blocktime个时间片后,将转换成就绪态进程状态state;
队列指针next,用来将PCB排成队列(3)优先数改变的原则:进程在就绪队列中呆一个时间片,优先数增加1进程每运行一个时间片,优先数减3。
(4)假设在调度前,系统中有5个进程,它们的初始状态如下:ID 0 1 2 3 4PRIORITY 9 38 30 29 0CPUTIME 0 0 0 0 0ALLTIME 3 3 6 3 4STARTBLOCK 2 -1 -1 -1 -1BLOCKTIME 3 0 0 0 0STATE READY READY READY READY READY(5)为了清楚地观察诸进程的调度过程,程序应将每个时间片内的进程的情况显示出来,参照的具体格式如下:
2024/7/31 19:39:55 103KB 动态优先 进程调度 VC++
1
第1讲:2015-01-12(进制01)第2讲:2015-01-13(进制02)第3讲:2015-01-14(数据宽度-逻辑运算03)第4讲:2015-01-15(通用寄存器-内存读写04)第5讲:2015-01-16(内存寻址-堆栈05)第6讲:2015-01-19(EFLAGS寄存器06)第7讲:2015-01-20(JCC)第8讲:2015-01-21(堆栈图)第8讲:2015-01-21(宝马问题)第9讲:2015-01-22(堆栈图2)第10讲:2015-01-23(C语言01_后半段)第10讲:2015-01-23(C语言完整版)第11讲:2015-01-26(C语言02_数据类型)第12讲:2015-01-27(C语言03_数据类型_IF语句)第13讲:2015-01-28(C语言04_IF语句逆向分析上)第14讲:2015-01-28(C语言04_IF语句逆向分析下)第15讲:2015-01-29(C语言04_正向基础)第16讲:2015-01-30(C语言05_循环语句)第17讲:2015-02-02(C语言06_参数_返回值_局部变量_数组反汇编)第18讲:2015-02-02(2015-01-30课后练习)第19讲:2015-02-03(C语言07_多维数组)第20讲:2015-02-03(2015-02-02课后练习)第21讲:2015-02-04(C语言08_结构体)第22讲:2015-02-05(C语言09_字节对齐_结构体数组)第23讲:2015-02-06(C语言10_Switch语句反汇编)第24讲:2015-02-26(C语言11_指针1)第25讲:2015-02-27(C语言11_指针2)第26讲:2015-02-28(C语言11_指针3)第27讲:2015-02-28(C语言11_指针4)第28讲:2015-03-02(C语言11_指针5)第29讲:2015-03-03(C语言11_指针6)第30讲:2015-03-04(C语言11_指针7)第31讲:2015-03-06(C语言11_指针8)第32讲:2015-03-09(位运算)第33讲:2015-03-10(内存分配_文件读写)第34讲:2015-03-11(PE头解析_手动)第35讲:2015-03-12(PE头字段说明)第36讲:2015-03-13(PE节表)第37讲:2015-03-16(FileBuffer转ImageBuffer)第38讲:2015-03-17(代码节空白区添加代码)第39讲:2015-03-18(任意节空白区添加代码)第40讲:2015-03-19(新增节添加代码)第41讲:2015-03-20(扩大节-合并节-数据目录)第42讲:2015-03-23(静态连接库-动态链接库)第43讲:2015-03-24(导出表)第44讲:2015-03-25(重定位表)第45讲:2015-03-26(移动导出表-重定位表)第46讲:2015-03-27(IAT表)第47讲:2015-03-27(导入表)第48讲:2015-03-30(绑定导入表)第49讲:2015-03-31(导入表注入)第50讲:2015-04-01(C++this指针类上)第51讲:2015-04-01(C++this指针类下)第52讲:2015-04-02(C++构造-析构函数继承)第53讲:2015-04-03(C++权限控制)第54讲:2015-04-07(C++虚函数表)第55讲:2015-04-08(C++动态绑定-多态-上)第56讲:2015-04-08(C++动态绑定-多态-下)第57讲:2015-04-09(C++模版)第58讲:2015-04-10(C++引用-友元-运算符重载)第59讲:2015-04-13(C++new-delete-Vector)第60讲:2015-04-14(C++Vector实现)第61讲:2015-04-15(C++链表)第62讲:2015-04-16(C++链表实现)第63讲:2015-04-16(C++二叉树)第64讲:2015-04-17(C++二叉树实现)第65讲:2015-04-20(Win32宽字符)第66讲:2015-04-21(Win32事件-消息-消息处理函数)第67讲:2015-04-22(Win32ESP寻址-定位回调函数-条件断点)第68讲:2015-04-23(Win3
2024/7/27 6:10:04 79B 滴水三期 汇编 C语言 C++
1
使用文件储存数据,代码简单,易于理解,使用Java语言数据结构,摒弃C和C++复杂的指针,用链表和排序实现全部功能.
2024/7/23 7:39:03 403KB Java SE 数据结构
1
本题库具有如下章节的选择填空题,题量多多,收获多多,是出试卷的好资料!二、数据类型、运算符与表达式(一)三、简单的C程序设计(一)四、逻辑运算与判断选取控制(一)五、循环控制(一)五、循环控制(二)七、函数(一)七、函数(二)七、函数(三)八、编译预处理九、指针(二)九、指针(一)十、结构体与共同体(一)十、结构体与共同体(二)十一、位运算十二、文件
2024/7/21 18:55:54 123KB C语言 选择题 填空题 程序设计
1
目前,测量电子元件集中参数R、L、C的仪表种类较多,方法也各不相同,这些方法都有其优缺点。
电阻R的测试方法最多。
最基本的就是根据R的定义式来测量。
在如图1中,分别用电流表和电压表测出通过电阻的电流和通过电阻的电压,根据公式RU/I求得电阻。
这种方法要测出两个模拟量,不易实现自动化。
而指针式万用表欧姆档是把被测电阻与电流一一对应,由此就可以读出被测电阻的阻值,如图2所示。
这种测量方法的精度变化大,若需要较高的精度,必须要较多的量程,电路复杂。
2024/7/14 13:23:38 86KB 采用51单片机设计方式
1
《C语言实例解析精粹》作者:曹衍龙、林瑞仲、徐慧,出版社:人民邮电出版社,ISBN:9787115163073,高清影印版,本资源带有PDF书签,方便读者朋友阅读。
本资源附带全书源代码。
内容简介:  本书主要讲解c语言编程涉及的各类常见实例,共分8篇,以“基础篇→数据结构篇→数值计算与趣味数学篇→图形篇→系统篇→常见试题解答篇→游戏篇→综合实例篇”具体展开,共汇集220个实例,基本涵盖了目前c语言编程的各个方面。
  书中以具体的实例为线索,特别注重对例题的分析、对知识点的归纳、对求解方法的引申,同时程序代码中融会了c语言的各种编程技巧,条理清晰,以方便读者举一反三,开发出符合特定要求的程序。
本书的配套光盘中涵盖了书中所有实例的源代码,以方便读者学习和查阅。
  本书适合具有初步c语言基础的读者阅读,可作为高校相关专业的辅导教材,也可作为c语言使用者进行程序设计的实例参考手册。
目录:第一部分 基础篇 实例1 第一个c程序  实例2 运行多个源文件  实例3 求整数之积  实例4 比较实数大小  实例5 字符的输出  实例6 显示变量所占字节数  实例7 自增/自减运算  实例8 数列求和  实例9 乘法口诀表  实例10 猜数字游戏  实例11 模拟atm(自动柜员机)界面  实例12 用一维数组统计学生成绩  实例13 用二维数组实现矩阵转置  实例14 求解二维数组的最大/最小元素  实例15 利用数组求前n个质数  实例16 编制万年历  实例17 对数组元素排序  实例18 任意进制数的转换  实例19 判断回文数 实例20 求数组前n个元素之和  实例21 求解钢材切割的最佳订单  实例22 通过指针比较整数大小  实例23 指向数组的指针  实例24 寻找指定元素的指针  实例25 寻找相同元素的指针  实例26 阿拉伯数字转换为罗马数字  实例27 字符替换  实例28 从键盘读入实数  实例29 字符行排版  实例30 字符排列  实例31 判断字符串是否回文  实例32 通讯录的输入输出  实例33 扑克牌的结构表示  实例34 用“结构”统计学生成绩  实例35 报数游戏  实例36 模拟社会关系  实例37 统计文件的字符数  实例38 同时显示两个文件的内容   实例39 简单的文本编辑器  实例40 文件的字数统计程序  实例41 学生成绩管理程序 第二部分 数据结构篇 实例42 插入排序 实例43 希尔排序 实例44 冒泡排序  实例45 快速排序  实例46 选择排序  实例47 堆排序  实例48 归并排序  实例49 基数排序  实例50 二叉搜索树操作  实例51 二项式系数递归  实例52 背包问题  实例53 顺序表插入和除  实例54 链表操作(1)  实例55 链表操作(2)  实例56 单链表就地逆置  实例57 运动会分数统计  实例58 双链表  实例59 约瑟夫环  实例60 记录个人资料  实例61 二叉树遍历  实例62 浮点数转换为字符串  实例63 汉诺塔问题  实例64 哈夫曼编码  实例65 图的深度优先遍历  实例66 图的广度优先遍历  实例67 求解最优交通路径  实例68 八皇后问题  实例69 骑士巡游  实例70 用栈设置密码  实例71 魔王语言翻译  实例72 火车车厢重排  实例73 队列实例  实例74 k阶斐波那契序列 第三部分 数值计算与趣味数学篇 实例75 绘制余弦曲线和直线的叠加  实例76 计算高次方数的尾数  实例77 打鱼还是晒网  实例78 怎样存钱以获取最大利息  实例79 阿姆斯特朗数  实例80 亲密数  实例81 自守数  实例82 具有abcd=(ab+cd)2性质的数  实例83 验证歌德巴赫猜想  实例84 素数幻方  实例85 百钱百鸡问题  实例86 爱因斯坦的数学题  实例87 三色球问题  实例88 马克思手稿中的数学题  实例89 配对新郎和新娘  实例90 约瑟夫问题  实例91 邮票组合  实例92 分糖果  实例93 波瓦松的分酒趣题  实例94 求π的近似值  实例95 奇数平方的有趣性质  实例96 角谷猜想  实例97 四方定理  实例98 卡布列克常数  实例9
1
c和指针源代码,超级好,学完,c就厉害了
2024/6/24 3:49:12 315KB c和指针源代码
1
aspose-words19.5jdk最新破解版2019年5月最新版本破解,完美无水印,无空指针问题,无限使用时间
2024/6/21 17:17:58 11.4MB aspose jdk
1
共 310 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡