自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

omnibots的博客

嵌入式技术分享

  • 博客(50)
  • 资源 (13)
  • 收藏
  • 关注

原创 编译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 149

原创 解决ubuntu22.04无法识别CH340/CH341和vscode espidf插件无法选择串口设备节点问题

如果还出现烧录报错的情况,请检查配置信息是否正确,除了这个也有可能是没有权限读写串口,可以修改串口权限。上文已经可以识别到串口设备了,但是乌龙的是vscode esp-idf插件居然不能选择。正好刚刚升级驱动时源码还没删,所以可以直接改驱动,把节点改为ttyS开头的即可。执行lsusb,发现可以检测到ch340设备,但是/dev下却没有设备节点。然后经过我的仔细观察,他好像过滤了ttyS开头的串口。然后继续编译,报错,函数原型不一致。重新插拔一次,就可以识别到了。重新拔插后,发现可以选择了。

2024-08-22 22:01:27 349

转载 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 40

原创 使用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 345

原创 ST7789 linux4.x驱动

【代码】ST7789 linux4.x驱动。

2024-07-09 09:52:35 238

原创 Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统

(img-KgXf3w9o-1720489002326)]# Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统。

2024-07-09 09:37:45 492

原创 IMX6ULL linux4.x RS485配置

【代码】IMX6ULL linux4.x RS485配置。

2024-07-09 09:35:33 319

原创 在windows下使用本地AI模型提供翻译、对话、文生图服务

OllamaOllluma全面兼容MacOS、Linux和Windows系统,它提供简洁的一键式本地模型部署流程,并将API功能统一转换至与OpenAI相匹配的标准格式,旨在为您带来无缝且高效的使用体验。Docker Desktop 是一个由 Docker Inc. 开发的桌面应用软件,用于在 Windows、macOS 和 Linux 操作系统上运行本地容器。它提供了一种简单且易于使用的界面来启动和管理 Docker 容器,并提供了对一些常用工具(如 Kubernetes)的支持。

2024-06-08 18:37:39 2152 4

原创 windows部署ollama+maxkb+vscode插件continue打造本地AI

我采用docker运行maxkb,本地运行ollama形式。可能是windows N卡的驱动优化比较好,这样子使用好像更流畅。我的机器是内存32G,显卡4060 8G,实测跑10G左右的模型可以流畅,16G的模型一分钟就蹦出几个字。

2024-05-28 09:48:16 1917

原创 ubuntu20.04使用binfmt透明执行riscv64程序

【代码】ubuntu20.04使用binfmt透明执行riscv64程序。

2024-04-15 22:34:36 286

原创 wsl2 arch linux访问ch340串口和usb设备

wsl2与windows共享usb设备

2024-04-11 19:18:24 351

原创 windows下安装ESP-IDF5.2.1报网络错误

离线安装包下载地址: https://dl.espressif.cn/dl/esp-idf/下载后傻瓜式安装。

2024-03-25 20:19:15 463

原创 NXP imx6ull在uboot中控制gpio

在引脚复用定义文件,arch/arm/include/asm/arch-mx6/mx6ull_pins.h中找到需要控制的引脚。在 board/freescale/mx6ullevk/mx6ullevk.c 中添加定义和控制代码。

2023-09-20 16:33:51 257

原创 libsodium、minisign交叉编译和使用minisign对文件签名及验签

给CMakeLists.txt打补丁。执行cmake生成Makefile。

2023-06-16 13:09:10 276

原创 使嵌入式Linux支持exFAT和NTFS文件系统,U盘自动挂载

把内核烧录挂载个exFAT U盘试试成功没。

2023-06-16 13:07:45 1565

原创 C语言使用readline库实现带tab补全命令的shell终端

【代码】C语言使用readline库实现shell终端。

2022-12-30 19:29:53 1005 1

原创 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 821

原创 linux查看端口占用

【代码】linux查看端口占用。

2022-11-12 21:03:29 443

原创 iptables/ip6tables报错

​ 在这里选择’xxx’对应的功能即可。内核不支持相应协议过滤支持,需要配置内核。

2022-10-24 09:22:09 700

原创 ipcalc交叉编译

项目地址:https://github.com/nmav/ipcalc https://gitee.com/a_little_progress/ipcalc。

2022-10-19 08:43:20 176

原创 控制脚本(shell13)

在使用作业控制命令时,如果未在命令行指定任何作业号,该作业会被当成作业控制命令的操作对象。任何时候都只有一个带加号的作业和一个带减号的作业,不管shell中有多少个正在运行的作业。有作业时, atd守护进程会检查作业设置运行的时间。如果某个作业在cron时间表中安排运行的时间已到,但这时候Linux系统处于关机状态,那么这个作业就不会被运行。取而代之的是, Linux系统会将提交该作业的用户的电子邮件地址作为STDOUT和STDERR。作业队列的字母排序越高,作业运行的优先级就越低(更高的nice值)。

2022-09-10 16:54:25 826

原创 linux4.15内核ILI9341LCD屏并口16线RGB565驱动

【代码】linux4.15内核ILI9341LCD屏并口16线RGB565驱动。

2022-09-05 09:05:11 786

原创 呈现数据 (shell12)

STDIN文件描述符代表shell的标准输入。对终端界面来说,标准输入是键盘。 shell从STDIN文件描述符对应的键盘获得输入,在用户输入时处理每个字符。在使用输入重定向符号(

2022-09-04 13:50:16 179

原创 可执行文件的装载与进程(链接、装载与库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 451

原创 处理用户输入(shell11)

位置参数变量是标准的数字: $0是程序名, $1是第一个参数, $2是第二个参数,依次类推,直到第九个参数$9。所以,变量$3的值会移到$2中,变量$2的值会移到$1中,而变量$1的值则会被删除(注意,变量$0的值,也就是程序名,不会改变)。用set命令能够做到。然后,该方法会将原始脚本的命令行参数传给getopt命令,之后再将getopt命令的输出传给set命令,用getopt格式化后的命令行参数来替换原始的命令行参数,看起来如下所示。当输入的字符达到预设的字符数时,就自动退出,将输入的数据赋给变量。..

2022-08-27 20:07:02 309

原创 IMX6UL系列小屏驱动之像素时钟无法修改

官方配置的时钟源,像素时钟最低只能8437500HZ,设置低于8437500HZ最后出来的时钟还是8437500HZ。修改完重新烧录,测波形,像素时钟已经可以降到8mhz以下了。,使它支持设备树修改父时钟。更换父时钟,修改设备树中的。LCD可选父时钟,在。...

2022-08-26 13:03:18 949

原创 静态链接(链接、装载与库04)

链接脚本由一系列语句组成,语句分两种,一种是命令语句,一种是赋值语句。语句之间使用分号作为分隔符表达式与运算符注释和字符引用/**/

2022-08-20 19:38:51 426 2

原创 更多的结构化命令(shell10)

只有测试命令的退出状态码不为0, bash shell才会执行循环中列出的命令。循环语句可以在循环内使用任意类型的命令,包括其他循环命令。注意,在使用嵌套循环时,你是在迭代中使用迭代,与命令运行的次数是乘积关系。while命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令返回的是退出状态码0。在处理代码量较大的脚本时,可能在一个地方需要修改IFS的值,然后忽略这次修改,在脚本的其他地方继续沿用IFS的默认值。在处理多个循环时, break命令会自动终止你所在的最内层的循环。

2022-08-20 17:47:31 66

原创 使用结构化命令(shell9)

如果该命令的退出状态码(参见第11章)是0(该命令成功运行),位于then部分的命令就会被执行。如果该命令的退出状态码是其他值, then部分的命令就不会被执行, bash shell会继续执行脚本中的下一个命令。当if语句中的命令返回退出状态码0时, then部分中的命令会被执行,这跟普通的if-then语句一样。当if语句中的命令返回非零退出状态码时, bash shell会执行else部分中的命令。除了test命令使用的标准数学运算符,下表列出了双括号命令中会用到的其他运算符。

2022-08-20 17:46:20 250

原创 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 3409

原创 uboot mtdparts报错unexpected character

原因是环境变量mtdparts后面多出了一个空格,删掉即可。删掉后面空格之后就正常打印分区信息了。

2022-08-11 14:44:04 348

原创 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 1113

原创 目标文件里有什么(链接、装载与库03)

在函数或者全局变量前加入_attribute_((section(“name”)))属性就可以把相应的变量或函数放到以“name"作为段名的段中。

2022-08-07 09:07:54 104

原创 静态链接(链接、装载与库02)

直接在语法树上作优化比较困难,源代码优化器会将整个语法树转换成中间代码,它是语法树的顺序表示,已经非常接近目标代码了。重定位做的就是给程序中每个这样的绝对地址引用的位置打补丁,使他们指向正确的地址。编译器所能分析的语义是静态语义,指在编译期间可以确定的语义。相对的是动态语义,运行期间才能确定的语义。最后目标代码优化器对目标代码进行优化,比如选择合适的寻址方式、使用位移代替乘法运算、删除多余的指令等。yacc语法分析器,可以根据用户给定的语法规则对输入的记号序列进行解析,生成一棵语法树。...

2022-08-06 17:51:38 116

原创 温故知新(链接、装载与库01)

多核处理器,指的是将多颗核心封装在一颗CPU上,共享昂贵的缓存部件,价格比普通处理器高一点而已,多核可以看成是SMP的简化版本,宏观上SMP和多核并无太大区别。解决了多对一模型中因为用户线程阻塞而引起全部线程阻塞的缺点,在多处理上增加处理器对性能提升有一定帮助,但和一对一模型比还是少一些,继承了多对一模型的全部优点。线程之间的并发是真正的并发,一个线程因为某原因阻塞时,其他线程执行不会受到影响。该模型将多个用户线程映射到一个内核线程上,线程之间的切换由用户态代码进行,因此比一对一模型在线程切换上要快很多。.

2022-08-06 17:49:39 196

原创 构建基本脚本(shell08)

在第一个命令产生输出的同时,输出会被立即送给第二个命令。一个简单的记忆方法就是:在命令行上,命令总是在左侧,而重定向符号“指向”数据流动的方向。最基本的重定向将命令的输出发送到一个文件中。按照惯例,一个成功结束的命令的退出状态码是0。shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。默认情况下, shell脚本会以脚本中的最后一个命令的退出状态码退出。它的值会变成由shell所执行的最后一条命令的退出状态码。之前显示器上出现的命令输出会被保存到指定的输出文件中。...

2022-08-06 17:44:46 237

原创 安装软件程序(shell07)

举个例子,在LinuxMint的sources.list文件中,你能看到混用了Linux Mint和Ubuntu的软件仓库。到目前为止,最常用的命令行工具是aptitude,这是有原因的。可以用方向键在菜单上移动。尽管aptitude可以帮忙解决安装软件时遇到的问题,但解决有依赖关系的多个包的更新会比较烦琐。如果你已经知道了系统上的那些软件包,只想快速显示某个特定包的详细信息,就没必要到aptitude的交互式界面。无法通过aptitude看到的一个细节是所有跟某个特定软件包相关的所有文件的列表。...

2022-08-06 17:43:09 619

原创 管理文件系统(shell06)

fdisk 创建了基本的Linux分区之后 ,需要通过t命令改变分区类型分区类型8e表示这个分区将会被用作Linux LVM系统的一部分,而不是一个直接的文件系统下一步是用分区来创建实际的物理卷。这可以通过pvcreate命令来完成。pvcreate定义了用于物理卷的物理分区。它只是简单地将分区标记成Linux LVM系统中的分区而已。别被吓人的消息dev_is_mpath: failed to get device for 8:17或类似的消息唬住了。...

2022-08-06 17:41:31 293

原创 理解Linux文件权限(shell05)

然后通过chgrp命令将目录的默认属组改为包含所有需要共享文件的用户的组(你必须是该组的成员)。/etc/passwd文件中的密码字段都被设置成了x ,现在,绝大多数Linux系统都将用户密码保存在另一个单独的文件中(叫作shadow文件,位置。对目录来说,目录中创建的新文件会以目录的默认属组作为默认属组。系统上的任何用户都能改自己的密码,但只有root用户才有权限改别人的密码。默认情况下, userdel命令会只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。...

2022-08-06 17:40:17 203

原创 使用Linux环境变量(shell04)

查看全局变量,可以使用env或printenv命令显示个别环境变量的值,可以使用printenv、echo 命令全局环境变量可用于进程的所有子shell部环境变量只能在定义它们的进程中可见set命令会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量以及用户定义变量。通过等号给环境变量赋值,值可以是数值或字符串变量名、等号和值之间没有空格 如果在赋值表达式中加上了空格,bash shell就会把值当成一个单独的命令通过export命令来完成,变量名前面不需要加$修改子shell中全局环境变量

2022-08-06 17:38:36 229

自考华南理工 计算机科学与技术实践真题

自考华南理工 计算机科学与技术实践真题

2021-07-03

python数据分析师带配套开发环境和工具

python数据分析师带配套开发环境和工具

2020-04-29

MySQL视频教程入门到进阶

MySQL视频教程入门到进阶

2020-04-29

0基础学投资理财视频

0基础学投资理财视频

2020-04-29

python办公自动化 Excel,word等

0基础学习python办公自动化 Excel,word等

2020-04-29

C提高详解完整版

C提高详解完整版

2019-09-30

openCV机器视觉之图像识别深度学习实战

openCV机器视觉之图像识别深度学习实战 网盘

2019-08-09

Python一线大厂企业内训和数据分析精品课程

Python一线大厂企业内训和数据分析精品课程

2019-08-09

JAVA接口自动化实战

JAVA接口自动化实战 网盘链接

2019-08-09

2019年GO语言(20小时快速入门) +项目实战

20小时入门GO语言 beego框架深入浅出 GO语言游戏开发 金融企业级区块链核心基础 区块链从入门到精通

2019-08-07

IOS开发入门到高级视频

IOS开发入门到高级视频 网盘链接

2019-08-07

C#开发实战1200例

C#开发实战1200例

2019-08-07

硅谷技术大牛带你深入C/C++高级工程师 架构师全套教程 价值2000元

硅谷技术大牛带你深入C/C++高级工程师 架构师全套教程 价值2000元 未加密

2019-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除