六、排错 1)redis-cli 换行问题 既然换行有问题,那就找redis-cli里换行的实现,即处理换行的函数,这里忽略怎么找的过程,全凭各自经验和排错习惯找,定位到linenoise.c里: 这...
SylixOS 应用移植指导——以Redis5.0.3为例(六)
五、排查符号表问题 我们现在编译已经可以通过了,但实际上APP未必能运行。这是因为SylixOS作为嵌入式操作系统,APP采用的是交叉编译的方式,即编译环境与运行环境是完全两套场景。这意味着,编译器在...
SylixOS 应用移植指导——以Redis5.0.3为例(五)
四、完善Makefile 既然liblua和libhiredis都有了,那就照葫芦画瓢,把redis-cli和redis-server的Makefile构造出来。 根据make流程的log,找到red...
(七)SylixOS同步互斥之原子操作
1. 基本作用 在各类操作系统提供的接口中,除了我们之前学习的互斥锁和信号量类接口用于实现互斥或者同步的目的外,也基本都会提供一类原子操作的接口,一般接口都带有atomic_xxx字样。原子操作类接口...
(六)SylixOS同步互斥之自旋锁
1.基本作用 在前面我们介绍过互斥锁用于共享资源的互斥访问,但是互斥锁有一个缺点就是资源开销比较大。因为获取互斥锁和释放互斥锁过程中都需要进出内核,如果共享资源自身不是很大的话,比如可能就是修改一个变...
(五)SylixOS同步互斥之二进制信号量
1. 基本作用 上一章节我们介绍了互斥锁,用于“共享资源”的互斥访问,在驱动开发中我们有时候需要等待某种资源准备好之后才能继续执行代码,这就需要使用同步机制来实现这个目的。比如某个应用想要读取AD转换...
(四)SylixOS同步互斥之互斥锁
从本篇开始往后的文章主要介绍下SylixOS常用的编程接口,比如同步互斥接口、动态内存相关类接口、Cache操作接口等等,主要聚焦于驱动开发中经常使用到的内核接口。 1. 基本作用 互斥锁在Sylix...
(三)SylixOS开发环境
最近在学习riscv版本的xv6,加上工作上的一些事情,所以SylixOS入门系列处于停更状态。我发现如果不一直坚持学习或者写文章的话,一段时间后就会松懈下来,到周末能躺床上刷一天的手机==所以做任何...
SylixOS 应用移植指导——以Redis5.0.3为例(四)
三、添加Makefile文件 前面我们知道了,要想编redis-server,需要先编译lua,要想编译redis-client,需要先编译linenoise、hiredis,什么,你说怎么知道的?不...
SylixOS 应用移植指导——以Redis5.0.3为例(三)
二、创建IDE工程 总结一下本阶段的工作: 已知: Redis源码 Redis编译流程 需要编译的依赖库 需要编译出的目标文件 目标: 在SylixOS IDE下构建工程 配置与Linux下一致的编译...
SylixOS 应用移植指导——以Redis5.0.3为例(二)
前期准备: 首先需要有一台Linux作为参考,SylixOS工程最终的表现形式与Linux越接近,说明移植的效果越好。 其次需要找到需要移植的应用源码,搞清它库之间的依赖关系,并确保其所有的依赖库(S...
SylixOS 应用移植指导——以Redis5.0.3为例(一)
本文章致力于指导有一定SylixOS开发基础的用户进行中大型应用软件移植。 没有SylixOS应用开发基础的建议先参考IDE自带的《RealEvo-IDE使用手册.pdf》,了解SylixOS IDE...