Zephyr build 架构
Foreword Zephyr 工程的整个构建体系是怎样的,这里做一个具体的分析和学习 最近小米的Vele 也开源了,不过由于缺少文档,而且架构非常庞大,光是仓库就传了两三百个,想看明白不太容易,但是基础的CMake、Kconfig等等全都有。 CMake 创建构建目录:保持源代码目录整洁。 使用 CMake 生成构建文件:配置项目并生成适合平台的构建文件。 编译和构建:使用生成的构建文件执行编译和构建。 清理构建文件:删除中间文件和目标文件。 重新配置和构建:处理项目设置的更改。 CMake 推荐使用 “Out-of-source” 构建方式,即将构建文件放在源代码目录之外的独立目录中 CMake例程 一个比较简单的CMake例程 https://g..
更多配置管理工具之kconfig
Foreword 绕了这么大一圈,似乎只有kconfig是比较成熟的,能与之相媲美的管理工具很少 Kconfig 安装 在windows下使用Kconfig,至少得有python,否则界面等内容无法正常显示 python需要先安装这几个包 python -m pip install windows-curses python -m pip install kconfiglib 测试安装,可以正常显示命令 menuconfig -h 测试 参考工程sample_1 https://github.com/bobwenstudy/test_kconfig_system 编译所有 make all 修改配置 menuconfig 运行main.exe就能看到结果了 ..
更多一日一技:为什么我很讨厌LangChain
一说到RAG或者Agent,很多人就会想到LangChan或者LlamaIndex,他们似乎觉得这两个东西是大模型应用开发的标配。但对我来说,我特别讨厌这两个东西。因为这两个东西就是过度封装的典型代表。特别是里面大量使用依赖注入,让人使用起来非常难受。什么是依赖注入假设我们要在Python里面模拟出各种动物的声音,那么使用依赖注入可以这样写:12345678910111213141516171819202122def make_sound(animal): sound = animal.bark() print(f'这个动物在{sound}')class Duck: def bark(self): return '嘎嘎叫'class Dog: def bark(sel..
更多QEMU模拟运行FreeRTOS
Foreword 测试一下QEMU模拟运行FreeRTOS QEMU QEMU安装需要先安装MSYS2 直接下载安装 https://www.msys2.org/ 安装完成以后,QEMU使用pacman包进行安装 https://www.qemu.org/download/#windows pacman -S mingw-w64-x86_64-qemu 添加新的环境变量,把刚才安装的路径加进去 D:\msys64\mingw64\bin 查看版本,显示正确 qemu-system-arm -version QEMU emulator version 9.1.1 Copyright (c) 2003-2024 Fabrice Bellard and the QEM..
更多Little known facts about Han
I was planning to publish this article on 2024-04-05 00:01, but rejected because it looked silly for this blog. On that day, butt hurt as usual, I watched this short-vid called Why Sichuan people were chill, by the influencer 罗胖. I was quite amazed by his 3.79M many fans and more strangely, IP location: Sichuan. I followed the article he mentioned: 1001 A..
更多宏管理工具之lite-manager
Foreword 体验一下群友的宏管理工具 lite-manager https://gitee.com/li-shan-asked/lite-manager 群友的宏管理工具,主要在gitee上更新,github更新不及时,release文件可能不能用 环境 至少需要一个make和gun c的环境,之前系统里一直有一个MinGW32 13年的版本,gcc大概只有6,编译过不去(后来发现应该不是这个问题) 通过下面的方式在线安装MinGW64 https://github.com/Vuniverse0/mingwInstaller/releases/download/1.2.1/mingwInstaller.exe 安装完成以后添加环境路径 如果环境里没有多的make,可以把..
更多构建工具之xmake
Foreword 当一套代码兼容了多个软件、硬件,需要面对不同情况下,进行不同的build的时候,就需要额外的工具来辅助完成这一个事情。 通常IDE构建 多数情况下,我们使用的各种IDE都有自己的一套UI或者配置文件来完成这个事情。 以VS为例,一般情况对于一个项目的整体构建的配置大概是这样的 顶级就是Solution 一个解决方案,一个方案下面可能有多个工程共同构成,比如某些工程依赖的库、依赖的测试工程、依赖的一些子应用。解决方案里必然也有一个配置,用来指定各个工程在解决方案级别进行构建时,各个工程适用什么配置来进行组合构建。 单独的工程来说,有一个或者多个配置文件,比如debug和release,这种最常见的,剩下就是对于整个项目的源码文件、库文件、依赖文件、资源文件的组合,可能不同配..
更多ss命令抓linux下偶发端口访问
Linux服务器一直有个TCP连上来发数据,跑到对应的机器上发现连接已经断了,对应的进程也退出了。估计是某种定时任务。 排查代码无果,只能通过命令行来监控。这里直接上ss命令 while true; do pid=$(ss -tanpe state established 'dst 10.11.22.33:4455' | awk 'match($0,/pid=([0-9]+)/,a){print a[1]}'); [[ -n $pid ]] && tr '\0' ' ' </proc/$pid/cmdline ; sleep 0.2; done; 解释下: while true; do ...; sleep 0.2; done;每0.2s反复刷新执行指定命令。 ss -ta..
更多Python gRPC
Foreword gRPC example测试 安装gRPC库 pip install grpcio 安装gRPC工具 pip install grpcio-tools 下载官方例程 git clone -b v1.66.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc 演示用例在这里 grpc/examples/python/helloworld 先启动服务端 python greeter_server.py 可以看到已经在监听了 再启动客户端 python greeter_client.py 正常连接到了服务端 源码分析 服务端 from concurrent impor..
更多ChatGPT-Mirror部署和体验
Foreword cws一直有问题,而且只支持access token,经常要换很麻烦。之前有关注到dairoot的mirror,这次刚好试一下,发现体验还行 ChatGPT-Mirror https://github.com/dairoot/ChatGPT-Mirror 项目很简单 https://chatgpt.dairoot.cn/ 官方体验站,也可以使用免费账号测试,基本都差不多 部署 脚本内是docker,所以机器需要提前安好docker git clone https://github.com/dairoot/ChatGPT-Mirror.git cd ChatGPT-Mirror/ # 修改管理后台账号密码 cp .env.example .env &a..
更多