首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

探索嵌入式应用框架(EAF)

EAF是Embedded Application Framework 的缩写,即嵌入式应用框架嵌入式应用框架是 Application framework的一种, 是在嵌入式领域的应用框架。...关于软件框架 软件框架是一个抽象的概念, 是提供了通用的软件功能,可以通过用户编写代码有选择地改变, 从而提供特定的软件应用。 软件框架提供了构建和部署应用程序的标准方式。...软件框架可能包括辅助程序、编译器、代码库、工具集和API , 汇集了所有不同的组件, 便于一个项目或系统的开发。...这或许就是嵌入式应用的必然性。 ? EAF 是面向嵌入式系统的软件应用框架嵌入式系统是一个在较大的机械或电气系统中具有专用功能的计算机系统, 通常具有实时计算约束。...嵌入式开发人员可以在 asm.js JavaScript 子集中编写性能关键代码, 并将其编译为本地代码, 作为构建过程的一部分, 而不是依赖 JIT。

1.7K41

推荐一款嵌入式C的开源代码框架-tboox tbox

推荐理由 这是一款大神级开源代码,基于c语言的,几乎包含了嵌入式开发的各个部分的封装,可以说是嵌入式系统的瑞士军刀! 注:源码作者不是我,我这里只是推荐,帮忙宣传。...• Debug: 调试模式,默认启用详细调试信息、断言、内存越界检测、内存泄漏、锁竞争分析等检测机制 • Small: 最小化编译,默认禁用所有扩展模块,启用编译器最小化优化 • Micro: 针对嵌入式平台...,基于生产、消费者模型 • 提供信号量、协程锁支持 • socket、stream都模块原生支持协程,并且可在线程和协程间进行无缝切换 • 提供http、file等基于协程的简单服务器实例,只需几百行代码...,就可以从socket开始写个高性能io服务器,代码逻辑比异步回调模式更加清晰 • 同时提供stackfull, stackless两种协程模式支持,stackless协程更加的轻量(每个协程只占用几十个...(目前只实现了部分,之后有时间会完全实现掉) • 扩展部分常用接口,增加对sqrt、log2等常用函数的整数版本计算,进行高度优化,不涉及浮点运算,适合嵌入式环境使用。

13210

嵌入式软件开发的框架思维

,处理业务,类似下面链接中的前后台顺序执行法,是不是感觉一朝回到了解放前; 做过应用系统的同学多少都知道,主流的应用开发框架都是基于事件驱动的,都有基于IOT反向依赖倒置开发模式的开发框架,只需要在固定的模板方法中填写业务逻辑代码...,一个APP的雏形就出来了,那么嵌入式系统为什么没有这样的框架呢?...通过搜索资料,其实这些探索还是有的:比方 CSDN博客:嵌入式软件开发之程序架构(一),提供了一个相对来说不复杂的框架,基于这个思路,实现了一个简单的Uart串口命令接收和处理业务。...Uart串口消息处理框架: 接收串口消息 -> 入命令队列 串口处理task定时运行 -> 出命令队列的命令 -> 处理命令 主要涉及:任务管理(定时器)、主循环、命令队列、串口中断处理 代码在nrf52832...芯片上运行,其他嵌入式芯片可以参考!

57540

举例说明嵌入式框架该如何分层

一、框架分层是什么? 在嵌入式架构中:一般分为硬件架构与软件架构。这里是嵌入式软件设计,也是大多数人接触的设计。...2.劣势 开发成本高:因为多层分别承担各自的职责,增加功能需要在多个层增加代码,这样难免会增加开发成本。但是合理的抽象,根据自己的项目设置合理的层级是能降低开发成本的。...性能略低:业务流需要经过多层代码的处理,性能会有所消耗。 可扩展性低:因为上下层之间存在耦合度,有些功能变化可能涉及到多层的修改。...三、一个简单的例子 由于主要讨论的是软件框架的分层设计,这里使用STM32cubemx来进行硬件的初始化,尽可能少考虑到硬件驱动的部分。...最后附上一点点代码,就是关于LED如何进行在不同层进行封装 硬件层 首先看HAL库生成提供的代码,这个就是LED硬件层,也就是GPIO层,cubemx已经生成了,在stm32f4xx_hal_gpio.c

32610

beego框架代码分析

前言 也许beego框架在国内应该是众多PHPer转go的首选,因为beego的MVC、ORM、完善的中文文档让PHPer们得心应手,毫无疑问我也是。...如何读一个框架? 毫无疑问读go的框架和PHP框架也是一样的: 配置加载:如何加载配置文件的。 路由:分析框架如何通过URI执行对应业务的。 ORM:ORM如何实现的。...go有自己实现的http包,大多go框架也是基于这个http包,所以看beego之前我们先补充或者复习下这个知识点。...beego路由分析 接下里我们开始看beego的代码。...,至此这个beego框架的流程就其本理顺了,最后我们在回头总结下整个流程如下图: 备注:go导入包相当于入栈过程,先import后执行init ?

58930

嵌入式C语言源代码优化方案

与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更明显。下面的代码(代码不完整,只是为了做示例分析)作用是相同的,但是效率不一样。...在ICCAVR中,如果乘以2n,都可以生成左移的代码,而乘以其它的整数或除以任何数,均调用乘除法子程序。用移位的方法得到代码比调用乘除法子程序生成的代码效率高。...提高CPU的并行性 (1)使用并行代码 尽可能把长的有依赖的代码链分解成几个可以在流水线执行单元中并行执行的没有依赖的代码链。...需要注意的是,重排序的代码和原来的代码代码上一致并不等价于计算结果一致,因为浮点操作缺乏精确度。在一些情况下,这些优化可能导致意料之外的结果。...说明 该方案主要是考虑到在嵌入式开发中对程序执行速度的要求特别高,所以该方案主要是为了优化程序的执行速度。

2.6K40

嵌入式Linux驱动开发——字符设备驱动框架入门

在这里毕竟不是为了分析框架的具体实现原理,以后有机会慢慢展开,在此主要为了讨论,如何快速使用这些框架来写出字符设备的驱动程序。...module_exit(first_drv_exit); MODULE_AUTHOR("Ethan Lee xxxxxxxxx"); MODULE_LICENSE("GPL"); //指定协议 以上的代码基本是关于字符型设备驱动的框架结构了...可以看到以上的代码其实就是一个简单的驱动程序框架了,其实如果没有 first_drv_open 和 first_dev_write 两个函数也是可以的,在硬件上可以正确的安装该驱动,在安装驱动的时候会调用注册在...那么我们就来改进一下我们的代码来实现自动分配设备号以及创建设备文件吧。...第二个问题,解决起来也不是很困难,在Linux中提供了一种机制是udev,可以用于自动的创建设备,在嵌入式Linux的文件系统,比如busybox,也有一套简化版的机制,是mdev,在配置文件系统的时候会进行相应的配置

3K20

框架化你的代码

前面讲了如何不写代码可以实现自动化。 但是录制的代码很杂乱且冗余,可读性和维护性太差。 下面来介绍如何搭建自动化框架,将录制的代码整理,让其变得简洁。 python市面见得多的是以下两种框架。...unittest是python自带的测试库,自我感觉的话,如果对python只是了解基础知识,学unittest框架相对于来说要好理解些,unittest框架也完全可以实现市场上大部分的业务测试!...建议可以先了解下unittest框架,然后在学pytest框架,可以更好的去感受一下两个框架的优缺点。...,失败是 F,出错是 E,跳过是 S 测试的执行跟方法的顺序没有关系, 默认按字母顺序 每个测试方法均以 test 开头 Verbosity=2情况下会打印测试的注释 被测代码,demo.py文件 #!...,可以用来作为我们自动化测试框架的用例组织执行框架 2、unittest流程:写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner

51130

嵌入式Linux下完成LCD屏文字显示(帧缓冲框架)

1.前言 帧缓冲框架是Linux下专门为显示类设备设计的接口,目的是将硬件和软件层分离开,方便应用层的编程,也方便应用层程序移植。...帧缓冲框架向驱动层和应用层分别提供了一套标准接口,驱动层按照框架编写驱动,应用层按照框架编写应用程序。帧缓冲在/dev目录下生成的标准节点是fb,比如:/dev/fb0,/dev/fb1等等。...这篇文章就介绍在应用层 如何利用帧缓冲框架接口封装LCD屏的画点函数,获取LCD屏的硬件信息,完成对LCD屏编程,实现文字、数字显示。...后续正常开发中一般采用矢量字库完成字体显示,大小调整方便,字体更换方法,在前面文章有介绍过嵌入式Linux如何交叉编译freetype库。 2....完整示例代码 3.1 中文显示 下面这份代码是单个汉字取模进行显示的,代码较少,整体比较简单。

1.5K40
领券