嵌入式软件

C 语法中static 和inline联合使用

泄露秘密 提交于 2020-05-06 00:26:10
最近在学习阶段,翻阅代码。发现有一个用法比较让我奇怪,就上网查了一下 static inline void somefunction(void); 这里是举例说明,这行代码是放在.h文件中的。 在此之前,如果对inline概念不了解的请自行wiki http://zh.wikipedia.org/wiki/%E5%86%85%E8%81%94%E5%87%BD%E6%95%B0 但是因为自己用得比较少,所以没有太关注, 当然也没有inline修饰符前面要加static的概念 仔细想想: 1、首先,inline函数是不能想传统的函数那样放在.c中然后在.h中给出接口在其余文件中调用的, 因为inline函数其实是跟宏定义类似,不存在所谓的函数入口。 2、因为第一点,会出现一个问题,就是说如果inline函数在两个不同的文件中出现,也就是说 一个.h被两个不同的文件包含,则会出现重名,链接失败 所以static inline 的用法就能很好的解决这个问题, 使用static修饰符,函数仅在文件内部可见,不会污染命名空间。 可以理解为一个inline在不同的.C里面生成了不同的实例,而且名字是完全相同的 PS: inline修饰符不同的编译器不一样,下次有空再补充 IAR中需要手动开发 并直接可以使用,keil中直接__inline即可 只要不是O0就会有内联处理@20140417 来源

Android嵌入式系统程序开发

对着背影说爱祢 提交于 2020-04-08 06:51:35
《Android嵌入式系统程序开发》 基本信息 作者: 胡文 宁世勇 李明俊 金雪松 丛书名: 单片机与嵌入式丛书 出版社:机械工业出版社 ISBN:9787111411697 上架时间:2013-4-2 出版日期:2013 年4月 开本:16开 页码:437 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 更多关于 》》》《 Android嵌入式系统程序开发 》 内容简介 计算机书籍   《android嵌入式系统程序开发(基于cortex-a8)》主要分为三部分,包括软件篇、硬件篇和项目篇。软件篇从android 体系结构和开发环境搭建,以及android 应用程序开发等方面构造了一个完整的android 开发流程;硬件篇重点讲解了s5pv210硬件结构和android系统移植,详细介绍了底层驱动的封装、中间层jni 的制作,以及上层ui的设计;项目篇提供完整的综合应用项目的程序开发实例,详细介绍了开发过程和原始程序代码。并且安排了丰富的实验内容与实践,让读者深刻理解和掌握嵌入式系统开发的整个过程,了解底层驱动程序驱动硬件的原理和上层应用程序的设计方法。    《android嵌入式系统程序开发(基于cortex-a8)》内容丰富实用、层次清晰、叙述详尽,方便教学与自学。本书可作为高等院校计算机类、电子类和控制类等专业高年级本科生

如何学习嵌入式?(网上汇总)

妖精的绣舞 提交于 2020-04-06 03:32:33
如何学习嵌入式?汇总了网上的一些帖子,最后部分给出了一些资源的下载链接 嵌入式菜鸟学习路线,2019, https://zhuanlan.zhihu.com/p/68227075 嵌入式小白到大神学习全攻略(学习路线+课程+学习书籍+练习项目) https://zhuanlan.zhihu.com/p/49950347 如何入门单片机/嵌入式 https://zhuanlan.zhihu.com/p/44771282 怎么自学嵌入式? https://www.zhihu.com/question/332475450 嵌入式技术学习路线 https://www.cnblogs.com/wxb20/p/5962148.html 如何学习嵌入式系统? https://www.zhihu.com/question/19688487 这个帖子有点老,不过一些推荐的经典书籍没有过时 评论中有一句话: 如果是学计算机的,那么学嵌入式不会有门槛。 如果不是学计算机的,那么忘了嵌入式,先学习计算机。 说得很在理! stm32学习视频(资料)推荐,2018, http://blog.sina.com.cn/s/blog_14f6592880102ya44.html 如何学习嵌入式软件?一位嵌入式学员的心得 https://zhuanlan.zhihu.com/p/70448337

第一次用博客园

巧了我就是萌 提交于 2020-03-17 06:43:24
自从辞职,一直在家休息看书,至今已三月有余。 这三个月来,我看了大量的技术书籍,发现自己的许多知识已经落伍,只能恶补。 人都是有惰性的,为了不至于让自己的热情消失,也为了能与朋友交流,上博客园申请了一个帐号,希望大家多沟通。 我感兴趣的内容: 1、工业通态组态软件; 2、C++编程,特别关注:模板编程、设计模式等; 3、可视化建模; 4、代码单元测试; 5、嵌入式软件开发,特别关注:wince、linux等; 6、跨平台软件开发; 7、人机界面; 8、软件开发项目管理; 来源: https://www.cnblogs.com/linkman/archive/2005/01/13/91450.html

嵌入式3.3拓展及作业

偶尔善良 提交于 2020-03-08 16:06:09
基本思想 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。 完全免费 Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。 完全兼容POSIX1.0标准 这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。 多用户、多任务 Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。 良好的界面 Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作

3.3嵌入式课程总结

血红的双手。 提交于 2020-03-08 10:03:10
嵌入式Linux操作系统 Linux介绍 1.安装Linux开发环境 Vm虚拟机(通过软件的方法模拟PC);Linux发行版(发行给用户使用的版本),redhat(centos 7),ubuntu(18.04),deppin。 2.Linux介绍(POSIX、GPL、GNU) 1991 Linux0.1 GPL:开源社区 GPL协议——Linux5.0 unix:1978-1979 C语言之父:丹尼斯里奇==unix之父(商业软件) POSIX标准:可移植操作系统接口(跨平台 的条件) GNU计划:GNU is not unix(优秀工具gcc gdb) Linux的使用 1.用户管理的命令 su:切换root;sudo:获取更高级的权限。 adduser:添加新用户;deluser:删除用户。 passwd:修改密码。 2.文件操作的命令 Linux一点哲学:一切皆为文件。 Linux文件分类:普通文件(-开头),目录文件(d),设备文件(c:字符设备/b:块设备),链接文件(l)。 Linux特殊文件:管道文件(p),堆栈文件(f),共享文件(s)。 Linux文件的操作权限:r:可读,w:可写,x:可执行。 权限描述(3组):(当前用户、当前用户组、其他用户)。 chmod:修改文件权限。 touch:创建文件;cat:查看文件;rm:删除文件。 3.文件编辑 gedit

信必优嵌入式开发

断了今生、忘了曾经 提交于 2020-03-05 17:42:10
在 IoT(物联网)的世界,一切都是数字化的 – “智能”手表、“智能”汽车乃至“智能”家具 – 所有设备都经过特殊设计,可与用户无缝连接。这一切背后的技术就是嵌入式开发 – 它是汽车、可穿戴设备、智能设备和工业应用的关键促成因素。嵌入式软件是动力引擎,为物联网设备和智能设备提供驱动力。 在 Symbio,嵌入式开发已深深植根于我们的业务核心。我们的嵌入式软件已经应用到不同行业的高需求环境中 – 从汽车、高科技消费产品到工业环境中的关键任务解决方案,它几乎无处不在。我们与初创企业合作,从头开始创建新的创新产品,还与大型企业合作,将服务设计和嵌入式技能应用至现有解决方案。 我们积累了数十年的专业知识涵盖从创新到交付、从质量保证到产品生命周期管理,涉及嵌入式开发的方方面面。通过有效利用我们的敏捷开发方法,我们可以提供强大的端到端嵌入式驱动解决方案。 我们通过以下嵌入式解决方案服务帮助客户: 核心嵌入式开发 嵌入式软件性能优化 嵌入式产品分析 端到端嵌入式交付 实现嵌入式解决方案的敏捷和持续交付 架构开发和硬件选择 质量保证和测试 将封闭式解决方案转换为开放式平台 嵌入式生命周期管理 与能够将最新嵌入式技术和专有技术与全球交付能力相结合的合作伙伴合作,您准备好了吗?无论您使用我们的自研产品还是开发专属于您的嵌入式解决方案,您都将享受到 Symbio 的过人之处带来的优势

《痞子衡嵌入式半月刊》 第 3 期

我怕爱的太早我们不能终老 提交于 2020-03-05 09:12:46
痞子衡嵌入式半月刊: 第 3 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly ),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回顾 : 《痞子衡嵌入式半月刊: 第 2 期》 唠两句 今天是雨水与惊蛰交节之时,惊蛰节气在农耕上有着相当重要的意义,自古以来我国人民很重视惊蛰这个节气,把它视为春耕开始的节令。 新冠肺炎疫情在逐日好转,相信大部分人都已经开始陆续复工了,但痞子衡东家还是决定 3 月 23 号之后再考虑全面复工的事。因此这些天痞子衡在家主要是以看技术文档写技术文档以及线上客户支持为主,最近原创文章产出比较惊人,一周能达到 3 篇,写文章这种事,写作过程中比较痛苦,但写完还是成就感满满的。 最近痞子衡不断接到技术群的朋友约稿,趁着在家办公的时机,痞子衡会加快写作,尽早完成大家的约稿。 本期共收录 3条资讯、4个项目、2个工具、1个RT产品,希望对你有帮助! 资讯类 1、面向音频/语音应用的恩智浦 i.MXRT600 已上市 恩智浦半导体于 Embedded World 2020 上宣布其旗下主打音频/语音应用的全新跨界处理器 i.MXRT600 已开始正式供货,10K 量起价 $4.50

嵌入式开发的必备知识点

倾然丶 夕夏残阳落幕 提交于 2020-03-04 18:00:13
嵌入式操作系统简介 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。 为什么要学嵌入式软件开发?好处是什么? (1)目前国内外这方面的人都很稀缺。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。 (2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。 (3)哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。 嵌入式八大入门的知识点 1、C语言 嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。 2、Linux基础

第一节嵌入式课程总结

久未见 提交于 2020-03-01 21:29:42
第一节嵌入式课程总结 一、嵌入式课程学习内容 1.了解嵌入式技术 2.掌握嵌入式Linux操作的使用(命令) 3掌握.嵌入式Linux开发工具的使用(gcc,gbd,make,shell) 4.掌握嵌入式Linux应用开发(文件,多任务,网络,数据库) 5.了解嵌入式产品开发的流程(硬件–软件–系统) 6.了解嵌入式系统移植(u-boot,内核,文件系统) 7.了解嵌入式底层软件开发(驱动开发) 二、什么是嵌入式技术? 在学习什么是嵌入式技术之前首先要回答三个问题 1.嵌入式软件和非嵌入式软件的区别 2.嵌入式开发与单片机开发的区别 3.嵌入式开发的优缺点 非嵌入式开发也就是所说的裸机开发,常见的非嵌入式芯片如3G手机。传统开发是软件和硬件之间的直接耦合,单片机的开发就属于传统开发,单片机的开发顺序通常是查看原理图----代码编写----下载烧录,对于相同类型的不同芯片,通常原理图都有区别,所以编写的代码不可能适用所有芯片,这就需要更改代码实现功能。 传统开发的缺点也就很明显了: 1.软件的移植性差(适配平台能力差),由一个平台转移到另一个平台的能力由于每一次转移都需要重写代码,适配能力就比较差。 2.传统开发的缺点还有一直存在的效率低,功耗高。 3.开发人员的能力要求(软硬通吃),开发人员软件和硬件都需要掌握。 而嵌入式系统在软件和硬件之间移植了操作系统