EAF是Embedded Application Framework 的缩写,即嵌入式应用框架。嵌入式应用框架是 Application framework的一种, 是在嵌入式领域的应用框架。...这或许就是嵌入式应用的必然性。 ? EAF 是面向嵌入式系统的软件应用框架。嵌入式系统是一个在较大的机械或电气系统中具有专用功能的计算机系统, 通常具有实时计算约束。...手机上的应用框架 由于手机的功能越来越强大,很多时候被认为超出了嵌入式系统的范畴。但是,了解手机上的应用框架,对于EAF而言,还是大有裨益的。...Android应用程序框架分为应用层、应用框架层、系统运行库层和Linux内核层,在开发应用时就是在这个框架上进行扩展。...---- 综上所述,嵌入式应用框架(EAF)对嵌入式系统的成功有着重要的意义。特别是对于嵌入式开放平台而言,能够提高开发者的开发效率,促进生态系统的繁荣。
一、freetype简介 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。...它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。..._install/include/freetype2/freetype/ /home/wbyq/work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi...比如:[wbyq@wbyq lcd_freetype]$ arm-linux-gcc freetype.c -lfreetype 2.3 windows电脑上的矢量字体存放目录 2.4 示例代码 #...释放FreeType配置*/ FreeType_Config(); close(lcd_fd); return 0; } 2.5 编译源代码的Makefile示例 all: arm-linux-gcc
go语言被称作互联网时代的c语言,用来开发嵌入式linux是一种享受。 希望能否带来开发工作效率的提升,产品质量稳定性方面的提升,产品功能上的增强。 物联网时代,就是要有所“变革”。...选用go语言开发嵌入式linux的理由? 一、go调c的驱动,太容易了,有先天的优势。 二、go做的应用,执行效率高,甚至接近c语言或超过c语言。甚至可以在电脑环境下去跑,去仿真。...能一天完成的两天去做就是浪费资源。 总之,问题太多。c是很强大,但不适合未来智能设备的发展要求。 曾经因为android应用大行其道,感觉linux的空间越来越窄了而退缩。...如果界面不是主要的,android的速度和效率比不过go,因此嵌入式linux还是有价值的,用go开发是一种选择。可以坚持一下,多做些尝试与研究。 质量和效率,是每个人都要考虑的。...目前的尝试只针对嵌入式linux。 为啥不在嵌入式linux上搞java? linux系统肯定能支持java的啊。 因为不想折腾。
GDB 调试工具介绍 linux下的程序调试方法汇总,这篇文章中介绍了linux下调试的常用方法。...GDB调试教程 GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具。这篇文章GDB十分钟教程,介绍了GDB调试程序的大体流程。...GDB交叉调试环境搭建 嵌入式Linux的GDB调试环境由Host端(PC机)和Target端(ARM)两部分组成,Host端使用arm-linux-gdb调试工具,而Target端需要运行gdbserver...,两者之间可通过串口或者网口连接,把ARM应用程序在Target端的执行情况返回Host。...调试跟踪命令从Host端的arm-linux-gdb中发出。
博主用 XMind 画了两个思维导图,供大家参考 嵌入式应用开发 嵌入式驱动开发
嵌入式Linux升级 嵌入式Linux系统一般是将应用程序与文件系统、内核、资源文件等放在不同的分区,方便后期升级。产品量产后内核、文件系统这些一般不会升级,应用程序可能升级会比较多一些。...应用程序可以是压缩包,也可以是镜像文件。...这里主要就是介绍一种将上述信息写入到升级文件里的一种方法。 升级文件的版本信息、标识、校验添加 这里介绍一种简单的方式,将信息写入到升级文件里,验证的时候再从文件里去取。...app 是应用程序的目录 bin 制作完成的升级文件存放目录 package.sh 打包制作脚本,用于生成镜像文件 package.sh脚本内容如下: #!.../bin #升级文件存储目录 tmpName="app" rootDir="app" #要打包的应用程序目录 #********************************
总结下日常工作中常用的linux下的shell脚本。 linux的shell脚本很强大,可以用来做一些特殊功能。...目录 启用硬件IO口 开机后应用启动其它应用服务 触发执行其它应用 拷贝U盘中的文件到设备中 拷贝U盘数据 Linux应用开机自启动 Linux的引导过程 rc和rcS脚本 简化常用指令操作,写个脚本...查找应用并设置应用的环境变量并运行 应用升级脚本 服务管理,启动或停止服务 统一改写目录下的文件属性 自动下载并构建freetype脚本 首次安装脚本install.sh autogen.sh 启用硬件...应用开机自启动 /etc/init.d/文件夹下放置有很多常用服务的控制脚本和其他的一些脚本。.../b503_app 查找应用并设置应用的环境变量并运行 run_app.sh 应用升级脚本 start_remoteupdate.sh #!
举例来说,调制解调器是典型的字符设备。 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。...那么,首先,认识一下字符设备的驱动框架。 对于上层的应用开发人员来说,没有必要了解具体的硬件是如何组织在一起并工作的。...比如,在Linux中,一切设备皆文件,那么应用程序开发者,如果需要在屏幕上打印一串文字,虽然表面看起来只是使用 printf 函数就实现了,其实,他也是使用了 int fprintf(FILE *...(非必须) 我们先看看一个简单的驱动程序的框架: #include //定义了module_init #include //最基本的头文件...第二个问题,解决起来也不是很困难,在Linux中提供了一种机制是udev,可以用于自动的创建设备,在嵌入式Linux的文件系统,比如busybox,也有一套简化版的机制,是mdev,在配置文件系统的时候会进行相应的配置
前言 嵌入式知识点复习一 嵌入式知识点复习二 –体系结构 嵌入式知识点复习三 –ARM-LINUX嵌入式开发环境 嵌入式知识点复习四 –arm-linux文件编程 嵌入式知识点复习五 –arm-linux...进程编程 嵌入式知识点复习六 –arm-linux网络编程 嵌入式知识点复习七 –linux字符型设备驱动初步 嵌入式知识点复习一 1、 嵌入式系统的一般组成结构 2、嵌入式硬件系统的结构 (1)嵌入式处理器...编程源代码/socket下相关代码 嵌入式知识点复习七 –linux字符型设备驱动初步 一、Linux字符设备驱动初步 1、Linux设备类型 (1)字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据...(3)网络设备:网络设备比较特殊,不在是对文件进行操作,而是由专门的网络接口来实现。应用程序不能直接访问网络设备驱动程序。在/dev目录下也没有文件来表示网络设备。...而实际值不是 0 ; name:设备名称; fops:操作函数,实现驱动定义的open、read、write、close等内核函数与应用程序调用的open、read、write、close间的映射;
它们的作用是:如果驱动程序中有数据,则立刻返回;否则就休眠。...APP 可以根据函数的返回值判断返回原因:有数据?无数据超时返回? APP 根据 poll 或 select 的返回值判断有数据之后,就调用 read 函数读取数据时,这时就会立刻获得数据。...band data”可读Linux 系统中很少使用这个事件POLLPRI高优先级数据可读POLLOUT可以写数据POLLWRNORM等同于 POLLOUTPOLLWRBANDPriority data...应用程序代码如下: struct pollfd fds[1]; int timeout_ms = 5000; int ret; fds[0].fd = fd; fds[0].events = POLLIN...使用 select 函数实现同样的功能。 (大家可以试一试)
1.前言 帧缓冲框架是Linux下专门为显示类设备设计的接口,目的是将硬件和软件层分离开,方便应用层的编程,也方便应用层程序移植。...帧缓冲框架向驱动层和应用层分别提供了一套标准接口,驱动层按照框架编写驱动,应用层按照框架编写应用程序。帧缓冲在/dev目录下生成的标准节点是fb,比如:/dev/fb0,/dev/fb1等等。...这篇文章就介绍在应用层 如何利用帧缓冲框架接口封装LCD屏的画点函数,获取LCD屏的硬件信息,完成对LCD屏编程,实现文字、数字显示。...后续正常开发中一般采用矢量字库完成字体显示,大小调整方便,字体更换方法,在前面文章有介绍过嵌入式Linux如何交叉编译freetype库。 2....编程思路 下面是帧缓冲框架图: 帧缓冲设备是标准的字符设备,通过open函数打开设备,再通过ioctl接口获取LCD屏的一些硬件参数信息,在利用mmap函数映射LCD屏的地址到应用层。
使用的编译器版本: 友善之臂光盘里自带的交叉编译器版本4.5.1 二、EEPROM芯片介绍 三、驱动代码 下面使用IIC子系统框架编写EEPROM的驱动,驱动端代码使用杂项字符设备框架,并且实现了文件指针偏移...;在应用层可以将EEPROM当做一个255字节大小的文件进行编程读写。... #include #include #include #include <linux...file结构体指针 off:待操作的定位偏移值(可正可负) whence:待操作的定位起始位置 返回:返回移位后的新文件读、写位置,并且新位置总为正值 定位起始位置 SEEK_SET:0,表示文件开头...3.3 应用端测试代码 #include #include #include #include #define
一般来说我们的产品都有按键,按键用来操作相应的界面,那就会有相应的界面处理方法,以下有两种结构的编写: A类编写 1//针对左键的处理函数,传入的参数为当前页面 2void left_key_process...,传入的参数为当前页面 27void right_key_process(int current_page) 28{ 29 //.... 30} 31//针对确认键的处理函数,传入的参数为当前页面...首先我们要操作界面,界面就是人机接口,每个不同的界面由对应的按键操作方法,这样看起来,是不是更好维护了?以后,我要往界面添加、删除等相关按键的处理方法,那是不是就更好找了? B类编写 ?...,但仍然存在缺陷,那就是一旦菜单项数变多以后,就存在效率低下的问题了,我们有一种更好的解决方法函数跳转表,我们将B类的方式改一下,引入C类编写。..." << endl ; 76} 77 78int setting_page_process() 79{ 80 cout << "设置页面" << endl ; 81} 如果圈友有什么更好的应用框架
文章目录 嵌入式系统的应用与发展 消费电子领域 通信领域 工控、汽车电子、仿真、医疗仪器等 国防、航空航天领域 嵌入式系统的发展趋势 形成行业的标准 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持...嵌入式开发工具 嵌入式系统联网成为必然趋势 嵌入式系统的应用与发展 嵌入式系统广泛地应用于消费电子、通信、汽车、国防、航空航天、工业控制、仪表、办公自动化等领域。...如欧共体汽车产业联盟规定以OSEK标准作为开发汽车嵌入式系统的公用平台和应用编程接口 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持 采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计...支持多种硬件平台 覆盖嵌入式软件开发过程各个阶段 高效 高度集成的工具集方向发展 面向应用领域的、高度集成的、以32位嵌入式微处理器为核心的SOC(System On Chip)将成为应用主流。...4.嵌入式系统的软件由哪些组成部分? 5.硬件抽象层的作用是什么? 6.嵌入式操作系统的主要特点是什么? 7.列举你身边的嵌入式应用系统。
做软件,其实这两年的成长是最大的,因为转到架构岗,确实是少了一部分之前在开发岗的一些不好的习惯,比方一上来就是细节,一上来就是某个功能点如何实现,现在接触一个事物,或者一个项目,首先考虑的是项目的整体框架...,先搭骨架,后填充血肉,把基础打好了,后面细节的问题总是能解决的; UWB标签和锚点的嵌入式系统,大家觉得嵌入式系统的程序大概长什么样,其实不复杂,一个 while(1)的死循环,然后套上很多逻辑,通过中断来接收事件...,处理业务,类似下面链接中的前后台顺序执行法,是不是感觉一朝回到了解放前; 做过应用系统的同学多少都知道,主流的应用开发框架都是基于事件驱动的,都有基于IOT反向依赖倒置开发模式的开发框架,只需要在固定的模板方法中填写业务逻辑代码...,一个APP的雏形就出来了,那么嵌入式系统为什么没有这样的框架呢?...通过搜索资料,其实这些探索还是有的:比方 CSDN博客:嵌入式软件开发之程序架构(一),提供了一个相对来说不复杂的框架,基于这个思路,实现了一个简单的Uart串口命令接收和处理业务。
大家好,又见面了,我是你们的朋友全栈君。 嵌入式主板是嵌入在设备里面做控制、数据处理使用的CPU板 ,常见的有两类,即基于X86的嵌入式主板和基于RISC的ARM 嵌入式主板。...;全性能的MMU,支持Windows CE、Linux等主流的嵌入式操作系统。...二、强大的扩展功能和网络传输功能:随着更多的行业开始使用到嵌入式主板,导致市场对主板功能的要求的差异化越来越大。嵌入式主板ARM的出现,恰恰满足了这个个性化的需求。...三、运算速度快、开发周期短:基于ARM架构的高端嵌入式主板由于其运算速度大幅度提升在新兴应用领域大显身手,能够满足绝大多数工业控制和智能终端设备对主板的要求。...ARM的缺点 1、缺点是目前ARM主板都是采用了Windows CE系统或者Linux系统,因此对于很多客户来说,原先采用了X86的平台,目前要调整到ARM上来,必须对软件平台进行重新编译和调整,而且还要熟悉一下
概述 本篇重点是讲LVGL的开发辅助工具,以及利用这些工具将LVGL制作UI之后移植到嵌入式Linux开发板上显示。...软硬件平台 本次开发是在Windows10和Ubuntu下联合进行的,使用的嵌入式Linux开发板是百问网的STM32MP157开发板,LVGL的开发辅助工具如下: 名称 作用 链接 lv_port_win_visual_studio...,一个是micropython,另一个是C/C++,我们是要在C下开发UI的,所以选择C/C++,最后是导出工程或者文件的路径,根据自己的实际情况选择就是: 设置好之后点击APPLY CHANGES来应用设置...: 如果是导出工程的话,会将lvgl和lv_drivers这两个官方源码一起导出,我们实际上不管是在visual studio还是后面会移植到的Ubuntu,在之前的那片《移植LVGL到Ubuntu和嵌入式...移植UI到嵌入式Linux开发板 在《【嵌入式Linux应用】移植LVGL到Linux开发板》文章中我们已经在虚拟机Ubuntu上创建了一个以LVGL官方示例的嵌入式Linux LVGL工程,我们现在要做的就是将自己在
,这涉及的网络设置太复杂了。...2.2.4.1 设置Ubuntu使用NAT网络 先关闭VMware中的Ubuntu,在VMware界面设置Ubuntu使用NAT,如下图: 然后启动Ubuntu,打开终端,执行ifconfig...命令,确定网卡IP,如下图所示,记住这个IP(192.168.75.128,也许你的跟它不一样),后面要用: 2.2.4.2 设置NAT网络的端口映射 在NAT网络下,外面的设备无法看到Ubuntu...这样,开发板访问Windows的这些端口时,才可以访问到Ubuntu。...变了,这就需要修改端口映射中的虚拟机IP。
自己总结的Linux学习路线,还在这条路上继续奔跑着… 我将其总结为4个阶段吧: 入门 - 抛弃旧的思维习惯,熟练使用 Linux 命令行 从Window切换到Linux是一件很痛苦的事情,因为人类接受信息最快的方式就是图形化的信息...在这一阶段,推荐的书籍是《鸟哥的私房菜》、《linux shell脚本攻略》。 《鸟哥的私房菜》- 几乎每个linux程序的必经之路。...《linux shell脚本攻略》- 印度人写的,二十岁的时侯写下了这本书,那时他已经是Ubuntu 和Fedora的源码贡献者了。...推荐的书籍有《Linux环境下C编程指南》、《UNIX 环境高级编程》。 linux驱动开发,学会基本的linux内核数据结构、接口等等,了解linux设备模型、设备树等,为理解内核打下坚实的基础。...linux内核源码解析,对每个子系统的代码架构深入研究,能对内核进行模块裁剪等。推荐的书籍有《Linux内核设计与实现》、《Linux内核源代码情景分析》和《深入理解Linux内核(第三版)》。
简介 嵌入式Linux下串口编程与Linux系统下的编程没有什么区别,系统API都是一样的。...嵌入式设备中串口编程是很常用的,比如会对接一些传感器模块,这些模块大多是RS232或者RS485接口,对于软件层面上来说,RS232与RS48区别不大。...RS232与RS485在使用上的区别,RS232是全双工的,只能对接一个设备串口设备。RS485是半双工的总线协议,一般可以挂多个传感器设备,半双工的意思是同时只能有一个设备向串口发数据。...用到的API函数 函数 说明 open 打开设备,用于打开串口设备 fcntl 修改设备描述符属性参数 isatty 检测打开的描述符是否指向一个终端 tcgetattr 用来获取串口终端参数 cfmakeraw...= old_cfg; cfmakeraw(&new_cfg); //配置为原来配置 new_cfg.c_cflag &= ~ CSIZE; //用数据位掩码清空数据位的设置
领取专属 10元无门槛券
手把手带您无忧上云