- 博客(54)
- 资源 (13)
- 收藏
- 关注
原创 Ubuntu22编译rk3566 buildroot报错 multiple definition of `fwriter_buffer‘; mksquashfs.o:(.bss+0x200180):
复制下面内容到 **buildroot/package/squashfs/0001-multiple-definition.patch **中。清空编译缓存,重新编译。然后就可以编译成功了。
2025-01-02 17:19:56
440
2
原创 编译linux内核时,让版本号不跟着git变化
导致报错,modprobe: can’t change directory to ‘4.1.15-00005-g482731e4-dirty’: No such file or directory。修改脚本文件,scripts/setlocalversion。取消 CONFIG_LOCALVERSION_AUTO宏。内核每次重新编译时,uname -r都会跟着变。如果不想要有4.1.15+,请参照方法二。这样配置编译后,版本号变为4.1.15+这样版本号4.1.15永远不会变了。
2024-08-22 22:02:24
335
原创 解决ubuntu22.04无法识别CH340/CH341和vscode espidf插件无法选择串口设备节点问题
如果还出现烧录报错的情况,请检查配置信息是否正确,除了这个也有可能是没有权限读写串口,可以修改串口权限。上文已经可以识别到串口设备了,但是乌龙的是vscode esp-idf插件居然不能选择。正好刚刚升级驱动时源码还没删,所以可以直接改驱动,把节点改为ttyS开头的即可。执行lsusb,发现可以检测到ch340设备,但是/dev下却没有设备节点。然后经过我的仔细观察,他好像过滤了ttyS开头的串口。然后继续编译,报错,函数原型不一致。重新插拔一次,就可以识别到了。重新拔插后,发现可以选择了。
2024-08-22 22:01:27
1320
1
转载 JLink7.70c更高版本驱动添加自定义设备方法
引言最近研究了下新版本JLink添加不支持设备的方法,对资料进行整理后写下这篇笔记用于记录。参考资料为UM08001_JLink文档的Open Flashloader章节(文件可在JLink_V780b内找到,之后版本都换成了链接文件)和SEGGER Wiki上的J-Link Device SupportKit(https://wiki.segger.com/J-Link_Device_Support_Kit)章节添加方法。
2024-08-09 08:34:00
725
原创 使用jlink高版本调试和烧录立创·地文星CW32F030C8T6开发板
下载地址:https://www.whxy.com/uploads/files/20240514/CW32F030_StandardPeripheralLib_V2.1.zip安装MDK pack解压下载的安装包,进入目录CW32F030_StandardPeripheralLib_V2.1\IdeSupport\MDK双击WHXY.CW32F030_DFP.1.0.4.pack,解压。记住解压路径,并打开目录。
2024-08-08 22:32:33
671
1
原创 Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
(img-KgXf3w9o-1720489002326)]# Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统。
2024-07-09 09:37:45
565
原创 在windows下使用本地AI模型提供翻译、对话、文生图服务
OllamaOllluma全面兼容MacOS、Linux和Windows系统,它提供简洁的一键式本地模型部署流程,并将API功能统一转换至与OpenAI相匹配的标准格式,旨在为您带来无缝且高效的使用体验。Docker Desktop 是一个由 Docker Inc. 开发的桌面应用软件,用于在 Windows、macOS 和 Linux 操作系统上运行本地容器。它提供了一种简单且易于使用的界面来启动和管理 Docker 容器,并提供了对一些常用工具(如 Kubernetes)的支持。
2024-06-08 18:37:39
6036
4
原创 windows部署ollama+maxkb+vscode插件continue打造本地AI
我采用docker运行maxkb,本地运行ollama形式。可能是windows N卡的驱动优化比较好,这样子使用好像更流畅。我的机器是内存32G,显卡4060 8G,实测跑10G左右的模型可以流畅,16G的模型一分钟就蹦出几个字。
2024-05-28 09:48:16
3931
原创 windows下安装ESP-IDF5.2.1报网络错误
离线安装包下载地址: https://dl.espressif.cn/dl/esp-idf/下载后傻瓜式安装。
2024-03-25 20:19:15
776
原创 NXP imx6ull在uboot中控制gpio
在引脚复用定义文件,arch/arm/include/asm/arch-mx6/mx6ull_pins.h中找到需要控制的引脚。在 board/freescale/mx6ullevk/mx6ullevk.c 中添加定义和控制代码。
2023-09-20 16:33:51
410
原创 libsodium、minisign交叉编译和使用minisign对文件签名及验签
给CMakeLists.txt打补丁。执行cmake生成Makefile。
2023-06-16 13:09:10
379
原创 curl交叉编译使其支持ldap和ldaps协议
需要把openssl、openldap、curl安装目录下的lib考到板子的lib目录,curl安装目录下的bin靠板子的bin目录。地址:ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/地址:https://www.openssl.org/source/地址:https://curl.se/download/
2022-11-24 16:45:17
1092
原创 ipcalc交叉编译
项目地址:https://github.com/nmav/ipcalc https://gitee.com/a_little_progress/ipcalc。
2022-10-19 08:43:20
233
原创 控制脚本(shell13)
在使用作业控制命令时,如果未在命令行指定任何作业号,该作业会被当成作业控制命令的操作对象。任何时候都只有一个带加号的作业和一个带减号的作业,不管shell中有多少个正在运行的作业。有作业时, atd守护进程会检查作业设置运行的时间。如果某个作业在cron时间表中安排运行的时间已到,但这时候Linux系统处于关机状态,那么这个作业就不会被运行。取而代之的是, Linux系统会将提交该作业的用户的电子邮件地址作为STDOUT和STDERR。作业队列的字母排序越高,作业运行的优先级就越低(更高的nice值)。
2022-09-10 16:54:25
912
原创 linux4.15内核ILI9341LCD屏并口16线RGB565驱动
【代码】linux4.15内核ILI9341LCD屏并口16线RGB565驱动。
2022-09-05 09:05:11
1015
原创 呈现数据 (shell12)
STDIN文件描述符代表shell的标准输入。对终端界面来说,标准输入是键盘。 shell从STDIN文件描述符对应的键盘获得输入,在用户输入时处理每个字符。在使用输入重定向符号(
2022-09-04 13:50:16
207
原创 可执行文件的装载与进程(链接、装载与库05)
硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,比如32位的硬件平台决定了虚拟地址空间的地址为0到2的32次方-1,即0x00000000 OxFFFFFFFF,也就是我们常说的4GB虚拟空间大小:而64位的硬件平台具有64位寻址能力,它的虚拟地址空间达到了2的64次方-1字节,即0x0000000000000000~0 xFFFFFFFFFFFFFFFF,总共17179869184GB,这个寻址能力从现在来看,几乎是无限的。“Segment”的概念实际上是从装载的角度重新划分了ELF的各个段。..
2022-08-28 17:07:09
582
原创 处理用户输入(shell11)
位置参数变量是标准的数字: $0是程序名, $1是第一个参数, $2是第二个参数,依次类推,直到第九个参数$9。所以,变量$3的值会移到$2中,变量$2的值会移到$1中,而变量$1的值则会被删除(注意,变量$0的值,也就是程序名,不会改变)。用set命令能够做到。然后,该方法会将原始脚本的命令行参数传给getopt命令,之后再将getopt命令的输出传给set命令,用getopt格式化后的命令行参数来替换原始的命令行参数,看起来如下所示。当输入的字符达到预设的字符数时,就自动退出,将输入的数据赋给变量。..
2022-08-27 20:07:02
582
原创 IMX6UL系列小屏驱动之像素时钟无法修改
官方配置的时钟源,像素时钟最低只能8437500HZ,设置低于8437500HZ最后出来的时钟还是8437500HZ。修改完重新烧录,测波形,像素时钟已经可以降到8mhz以下了。,使它支持设备树修改父时钟。更换父时钟,修改设备树中的。LCD可选父时钟,在。...
2022-08-26 13:03:18
1197
原创 静态链接(链接、装载与库04)
链接脚本由一系列语句组成,语句分两种,一种是命令语句,一种是赋值语句。语句之间使用分号作为分隔符表达式与运算符注释和字符引用/**/
2022-08-20 19:38:51
705
2
原创 更多的结构化命令(shell10)
只有测试命令的退出状态码不为0, bash shell才会执行循环中列出的命令。循环语句可以在循环内使用任意类型的命令,包括其他循环命令。注意,在使用嵌套循环时,你是在迭代中使用迭代,与命令运行的次数是乘积关系。while命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令返回的是退出状态码0。在处理代码量较大的脚本时,可能在一个地方需要修改IFS的值,然后忽略这次修改,在脚本的其他地方继续沿用IFS的默认值。在处理多个循环时, break命令会自动终止你所在的最内层的循环。
2022-08-20 17:47:31
89
原创 使用结构化命令(shell9)
如果该命令的退出状态码(参见第11章)是0(该命令成功运行),位于then部分的命令就会被执行。如果该命令的退出状态码是其他值, then部分的命令就不会被执行, bash shell会继续执行脚本中的下一个命令。当if语句中的命令返回退出状态码0时, then部分中的命令会被执行,这跟普通的if-then语句一样。当if语句中的命令返回非零退出状态码时, bash shell会执行else部分中的命令。除了test命令使用的标准数学运算符,下表列出了双括号命令中会用到的其他运算符。
2022-08-20 17:46:20
273
原创 linux下使用fw_printenv读取、fw_setenv修改uboot环境变量
fw_setenv和fw_printenv共用一个文件,只是通过程序名来区分不同功能,所以我们在开发板创建一个fw_setenv的软连接就可以了。得到fw_printenv和fw_setenv后还不能正常使用,还需要把tools/env/fw_env.config拷到板子/etc目录下。这些都配置对了之后就可以使用fw_printenv和fw_setenv进行读取和修改uboot环境变量分区的变量了。编译完后,tools/env下面就有fw_printenv,把它拷到板子上就行了。配置完就可以开始编译了。.
2022-08-12 16:07:46
4627
原创 uboot mtdparts报错unexpected character
原因是环境变量mtdparts后面多出了一个空格,删掉即可。删掉后面空格之后就正常打印分区信息了。
2022-08-11 14:44:04
439
原创 ubifs镜像文件制作及其烧录
为1974-1908*128/1024=8.25M,ubinize.cfg文件中vol_size要为最大卷大小减去8.25M。原因是最后的卷大小超过了分区大小。擦除时没有把整个分区擦除掉,比如ubi.img只有80M,但是根文件系统分区有230M,擦除时不能只擦除80M,而要擦除230M,因为为擦除的部分会被ubi driver判定为垃圾数据,则认为镜像已损坏。注意,卷大小建议设置为分区大小减去8-10M,可能是因为ubinize加上了一些ubifs相关的信息,最后会使卷大小比你设置的大8-10M。...
2022-08-08 13:35:39
1371
原创 目标文件里有什么(链接、装载与库03)
在函数或者全局变量前加入_attribute_((section(“name”)))属性就可以把相应的变量或函数放到以“name"作为段名的段中。
2022-08-07 09:07:54
147
原创 静态链接(链接、装载与库02)
直接在语法树上作优化比较困难,源代码优化器会将整个语法树转换成中间代码,它是语法树的顺序表示,已经非常接近目标代码了。重定位做的就是给程序中每个这样的绝对地址引用的位置打补丁,使他们指向正确的地址。编译器所能分析的语义是静态语义,指在编译期间可以确定的语义。相对的是动态语义,运行期间才能确定的语义。最后目标代码优化器对目标代码进行优化,比如选择合适的寻址方式、使用位移代替乘法运算、删除多余的指令等。yacc语法分析器,可以根据用户给定的语法规则对输入的记号序列进行解析,生成一棵语法树。...
2022-08-06 17:51:38
220
原创 温故知新(链接、装载与库01)
多核处理器,指的是将多颗核心封装在一颗CPU上,共享昂贵的缓存部件,价格比普通处理器高一点而已,多核可以看成是SMP的简化版本,宏观上SMP和多核并无太大区别。解决了多对一模型中因为用户线程阻塞而引起全部线程阻塞的缺点,在多处理上增加处理器对性能提升有一定帮助,但和一对一模型比还是少一些,继承了多对一模型的全部优点。线程之间的并发是真正的并发,一个线程因为某原因阻塞时,其他线程执行不会受到影响。该模型将多个用户线程映射到一个内核线程上,线程之间的切换由用户态代码进行,因此比一对一模型在线程切换上要快很多。.
2022-08-06 17:49:39
337
原创 构建基本脚本(shell08)
在第一个命令产生输出的同时,输出会被立即送给第二个命令。一个简单的记忆方法就是:在命令行上,命令总是在左侧,而重定向符号“指向”数据流动的方向。最基本的重定向将命令的输出发送到一个文件中。按照惯例,一个成功结束的命令的退出状态码是0。shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。默认情况下, shell脚本会以脚本中的最后一个命令的退出状态码退出。它的值会变成由shell所执行的最后一条命令的退出状态码。之前显示器上出现的命令输出会被保存到指定的输出文件中。...
2022-08-06 17:44:46
398
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人