掉电安全文件系统littlefs移植

2024-06-11
阅读 5 分钟
725
前言通过查看oneOS中对littlefs的移植工作,发现,littlefs源码本身,有用的就4个:lfs.clfs.hlfs_util.clfs_util.h剩下的就是适配层:dfs_lfs.clfs_config.h(和lfs_util.h差不多)lfs_crc.c(和lfs_util.c差不多)然后再对比其源码,发现,littlefs的源码完全没有更改,更改的只有是适配层,因此,接下来重点看看适配层到...
封面图

littlefs性能分析提升

2024-06-11
阅读 3 分钟
790
littlefs性能分析分析的目的很简单:希望支持掉电安全,或者说具有奔溃一致性特性的文件系统,他的读写速度能得到提升。如果了解了瓶颈所在,也可触类旁通。本次分析,使用了大量的对比测试:littlefs读(KB/S)写(KB/S)分析lfs初始速度 read_size=512, prog_size=512, block_size=512, lookahead_size=80.76517810118.9...
封面图

KVM系统虚拟化性能测试过程总结

2024-01-10
阅读 54 分钟
714
buildroot编译为啥要用buildroot支持很多:交叉编译工具链、根文件系统生成、内核映像编译和引导加载程序编译。使用简单:使用类似内核的menuconfig、gconfig和xconfig配置界面,使用buildroot构建基本系统很容易。支持很多的包:很多benchmark的测试,qemu,kvmtools等都集成在里面。基本介绍目录结构config:配置文件d...
封面图

基于虚拟化的物联网沙盒操作系统

2023-06-13
阅读 6 分钟
823
为什么要有虚拟化?物理CPU,物理内存和存储,物理网络的硬件能力越来越丰富的情况下,为了高效、灵活的使用资源,以及在使用时的资源隔离,把硬件资源抽象成软件资源,来动态的业务按需分配和使用。
封面图

网络世界里的大图书馆 ZLibrary

2023-03-14
阅读 2 分钟
713
现实之中,纸质书籍的购买,逐渐没落。现在还能回想起读书时候在新华书店买入的心情,但时间却再也回不去了。我们常常在网络上网,浏览各种各样的信息。但,这种信息都是些什么呢?我给自己的行为归了个类:娱乐八卦信息:自媒体(抖音,微信,微博,哔哩哔哩),游戏(王者荣耀,斗鱼)搜索:百度,必应个人爱好类:知...
封面图

修改二进制文件中的某个字节

2023-02-09
阅读 1 分钟
1.1k
可能我们很少会改写二进制文件,可是当我们要改写的时候,我们需要知道怎么做!一种方法是使用编辑器:比如:010 Editor,UltraEdit。另一种方法则是使用命令或者脚本,这样的好处是可以实现自动化,而不需要每次的手动编辑。命令如下: {代码...} 解释:上述命令是指使用dd命令把0x80写入到temp.elf文件中的第27个字节...
封面图

collect2.exe: fatal error: CreateProcess

2023-02-07
阅读 1 分钟
978
今天解决了一个问题,就是:collect2.exe: fatal error: CreateProcess: No such file or directory。
封面图

好嗨哟!OneOS 图形组件显示自己喜欢的图片

2022-07-11
阅读 3 分钟
918
一直对图形心心念念,还能想到以前使用QT的日子,而后接触到了资源比较受限的MCU,发现QT便没有什么优势了,更多的则是:GUIX、ucGUI、storyboard,LVGL等,没有一家独大,而是百花争鸣。其中,OneOS联合LVGL,组成OneOS下的图形组件,也让OneOS的图形功能得到了很好的扩展和延伸。

OneOS下的图形组件配置学习

2022-07-08
阅读 4 分钟
861
轻量级GUI框架基于LVGL移植开发,针对图形化开发工具的设计,以模块化的方式,解决物联网操作系统在微控制器下图形界面资源占用过大、源码不可见、图形界面库不统一、使用难度较大的痛点。

OneOS下的GUI框架测试

2022-07-06
阅读 2 分钟
842
最近在学习RTOS,发现国产RTOS竟然已经发展得这么蓬勃了,之前一直喜欢用freertos,但现在更多得国产物联网操作系统更让我值得期待和尝试了。此次,主要是体验下中国移动旗下得一块轻量级RTOS,通过配置组件,使能GUI模块,顺便跑了下demo,发现惊喜连连,棒棒哒!

手工计算 Unicode 转换为 UTF-8

2022-05-23
阅读 3 分钟
677
今天因为想把一个Unicode值转换为UTF-8值,在网络上搜了半天,结果均没有收获,大部分都是获取字符的Unicode值或者UTF-8值。基于此,想着,如果一个Unicode值和UTF-8值都代表同一个字符,那么我可不可以直接把一个Unicode值转换为UTF-8值?它们之前是否存在一定的规律呢?答案是:肯定的。
封面图

常见的图标库有哪些?

2022-05-23
阅读 1 分钟
1.6k
Iconfont 是阿里提供了一个图标库,你可以想象成是一个售卖图标的超市,挑选你需要的图标放入购物车,然后 Iconfont 会为你打包你购物车里的图标,自动生成一种新的字体,你可以选择下载到本地,在你的项目中引入这种字体,这样即便没有网络的情况也可以使用图标。
封面图

超好用的图标库在 LVGL 上的转换与支持

2022-05-23
阅读 2 分钟
1.8k
首先,我们注册iconfont,然后把自己心仪的图标加入购物车,最后进入购物车,选择下载源代码即可。举个栗子,下图就是我下载下来的图标内容:
封面图

LVGL 字体转换与支持

2022-05-20
阅读 2 分钟
2.3k
在LVGL中,自带了中英文字体,英文字体倒是挺全的,字号从8到48都有。而中文字体呢,则只有16号字体的lv_font_simsun_16,更严重的是,包含的汉字还不全。。。本文章主要讲两个方面。
封面图

OneOS-Lite 上提升 LVGL 帧率的方法

2022-05-13
阅读 1 分钟
1.7k
LVGL的移植是第一步,这使得OneOS-Lite上拥有了图形界面的能力。下一步,则是如何提升LVGL帧率问题。总结了一下,大概有以下几个方面。帧率FPS:FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。...
封面图

基于 OneOS-Lite 适配 LVGL8.2

2022-05-12
阅读 2 分钟
1.1k
LVGL7.9很早就已经在OneOS-Lite适配支持了,随着LVGL的版本迭代,LVGL8.2配合squareline可视化开发工具成了更好的选择。因此,OneOS-Lite也一并支持了LVGL8.2版本。此篇文章,则是讲讲基于OneOS-Lite适配LVGL8.2的过程,以供分享。
封面图

目前有哪些嵌入式GUI?

2022-05-12
阅读 2 分钟
1.9k
最近对嵌入式下的GUI挺感兴趣的,MCU性能虽小,但仍能运行流畅的图形界面,在可穿戴设备上,或者一些小屏设备上,大有可一展身手之处。不了解不要紧,一了解吓一跳。原来嵌入式GUI已经发展得如此蓬勃,生命力旺盛,让人兴奋。有大厂的介入,也有新兴公司的崛起,还有开源创作者的热爱,每一份GUI都如璀璨的明珠,或大或...
封面图

windows下RISC-V编译调试环境搭建

2022-01-20
阅读 1 分钟
1.8k
当开源变得越来越流行,开放的标准,开源的语言,开源的操作系统(Linux、freeBSD、freeRTOS),开源的工具链(gcc、LLVM),开源的数据库(MySQL)。。。对于软件来说,开源项目之多,开源规模之大,开源方面之广,硬件显然是难以比肩,当前更是无法企及的。
封面图

什么是安全函数?

2022-01-18
阅读 1 分钟
3k
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”...
封面图

那些和优化相关的事儿

2022-01-18
阅读 1 分钟
1k
前言优化是一个神奇的事情,可化腐朽为神奇,此点金手为编译器,我常认为她是很好的人工智能,可把人类语言化为机器语言。什么时候会用到优化?发行的版本release一般都是二级优化的,因为优化能使可执行文件更小,执行效率更高。什么时候不会用优化?调试的版本debug,因为为了保证源代码和二进制代码一一对应。优化是...
封面图

OneOS-lite代码学习:任务调度与中断的开关

2021-12-22
阅读 3 分钟
1.2k
任务调度开关以下这些代码在/oneos-kernel/source/os_sched.c调度的初始化:k_sched_init->_k_readq_bmap_init:这里初始化的是优先级位图为0,优先级链表数组。启动内核调度:k_start->os_first_task_start-关闭任务调度: {代码...} 开启任务调度: {代码...} 这里需要注意的是:g_os_sched_lock_cnt的初始值是0,...
封面图

keil开发:如何让所需函数不被优化?

2021-12-17
阅读 1 分钟
3.1k
当我们不管是使用gcc还是keil自带的armcc或者armclang进行开发的时候,会遇到一个问题,就是:编译器有时会把我想要用到的函数给优化掉,导致运行时的错误,或者不正常执行。
封面图

产品设计塑造用户习惯

2021-12-11
阅读 1 分钟
1.4k
前言今天看到一段话:产品设计,会塑造用户的习惯,影响用户的选择。所以,请多一些敬畏之心。深感认同。造物主?一个产品是有内涵的,这个世界没有造物主,却有制造产品的人。而产品的内核,由制造产品的团队打造,这么一想有点细思极恐。衷心希望世界上的所有产品,都是怀着对世界的美好产生,然后事实却并非如此。小...
封面图

闲聊C语言结构体

2021-12-08
阅读 2 分钟
1.4k
结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。一、结构体的形态C源程序(struct.c): {代码...} 赋值部分翻译后: {代码...}   可以看出:c.a 是在 28(%esp) 之后的2个字节c.b 是在 30(%esp) 之后的2个字节c 是 28(%esp) 之后的4个字节d 是 24(%esp) 之后的4个字节不得不感叹名字(结构体名字、子...
封面图

能画流程图的,不仅仅是visio,还有drawio!

2021-12-03
阅读 1 分钟
2.6k
工作嘛,所以不可避免的要画流程图。其实已经好久没用过office全家桶了,一般就是用typora写写markdown就好,现在突然用起来写doc文档,还真是装应用都浪费了好多时间,可惜了。还要使用visio,真是得迎难而上呀?
封面图

基于Renode仿真开发OneOS-Lite的shell使用

2021-12-01
阅读 1 分钟
1.2k
1.简介之前文章使用Renode简单支持了OneOS-Lite的运行,但shell的使用却并没支持起来。此次,我们将基于Renode仿真开发OneOS-Lite的shell使用,通过虚拟环境,也能通过shell,体验更好的互动!再次,我们给出了相关源码地址和工具,方便大家体验!OneOS-Lite源码: [链接]Renode工具下载:[链接]OneOS-Cube编译工具下载...
封面图

gdb+jlink调试MCU

2021-11-23
阅读 1 分钟
2.1k
前言使用gdb+jlink的方式比较简单,这里简单说说吧。下载安装jlink第一步,去官网下载安装:[链接]使用J-Link GDB Server打开J-Link GDB Server,根据实际情况选择目标设备和调试接口点击OK运行GDB Server运行GDB在OneOS代码根目录下运行OneOS-Cube,执行如下命令运行GDB {代码...} 在GDB命令行交互界面中执行如下命令连...
封面图

gdb+openocd+stlink调试MCU

2021-11-23
阅读 3 分钟
3.6k
当我们遇到问题的时候,可以加打印信息追踪流程,但更有效的方式是:调试。如果你使用的是keil,可以借助stlink或者jlink进行调试。如果你是使用的gnu工具链,硬件支持jlink,那么我们可以借助gdb+jlink的方式进行调试;如果我们硬件支持的是stlink,则可以借助gdb+openocd+stlink进行调试。
封面图

开源调试软件OpenOCD调试stm32

2021-11-19
阅读 3 分钟
2.3k
生活中很多这样的例子,调试,永远都是事物良性发展过程中必不可少的一个环节,两个人过日子遇到了矛盾,静下来沟通就是调试,总不能一言不合就分手。在设计一个产品或者一个流程时,都要充分的考虑到调试因素,这样系统在运行过程中一旦出现了问题,可以及时的追溯。
封面图

自动化集成测试之解放程序员的利器,真香!

2021-11-09
阅读 4 分钟
2.2k
持续集成是指程序开发者将代码块推送到Git远程仓库时,每次Push或Merge都将触发并运行一系列脚本来构建、测试和验证提交的代码,验证通过后合并到仓库分支中。
封面图