- 博客(275)
- 收藏
- 关注
原创 rk3568 , mipi 屏幕调试(3588s 可以显示,但是3568 不能显示)
按道理讲是没有差别的。客户正在调试 自己的 mipi 屏幕,发现,更过修改设备树之后,在 3588s 上可以显示,但是同样的方式在 3568 上就不能显示了。我是这么想的, 我也在 3568 上 直接 给 reset 脚 , 接上一个 1.8V的 高电压,就不通过 gpio 控制了。2、 可以看到 ,低电平需要一定的时间,否则识别不出来,然后高电平之后,还要等一段时间,这是 屏幕真正reset 的时间。这里需要 看一些 屏幕的数据手册, 对于mipi 屏幕来说 , 需要注意的也就是 这个复位的时间了。
2025-06-09 11:50:26
14
原创 朱老师, hi3518e, 第九季
我感觉,他之所以可以这个多的 转化,可能,在最初的图像中,其实已经记录了 这些细节,只不过 图片输出的时候,忽略了这些细节,但是他是记录了下来的,所以他才有了这些 显示出这些细节的算法。3A 的算法,有一部分是纯软件上的,有一部分是 需要操作硬件的,所以 它最后 还是会 操作到 sensor 的硬件,也就是说, 需要 sensor 的一些控制函数 向 3A去注册。黑电平 是对 暗电流的校准, 就是在一个 黑暗的屋子里,没有光,但是也是有电流的,但是我们就把 这样的电流 标定为 0 .有点 放大器的感觉。
2025-05-14 14:16:31
661
原创 朱老师,3518系列,第八季
它这里 使用 320 x3 又除以 2 明显是 计算出了,原图那么打的 数据,如果是 osd 的话,假设是多少的 像素,我觉得 以后它 还会做 像素的转化。2、 他这里的添加 OSD jing然不是 在 RTSP发送的函数中实现的,也就是说 海思的 ko 库, 应该是开的 线程获进程。这里的 像素格式 , Argb1555 , 后面的数字 代表的是 占的字节数, 这里一共是 16位, 2个字节。这里的作用是,如果图片中,有白色, 或者 黑色, 那么我就把它的颜色 变成透明的,也就是所谓的背景色。
2025-05-14 14:16:18
892
原创 朱老师,3518e系列, 第七季
他这里直接拷贝的 整理好的 压缩包,替换掉 mpp ,并没有说怎么 去移植。原来 还可以 自己 改动 mp4v2 的库, 自己定义一个协议 ,进行 打包,解包 ,这里的 路径要改, 这里默认的 test.mp4 在 / 目录下,一会儿就满了。运行程序的时候, 是一遍 在 进行 rtspl 的推流, 一边进行 打包的。这里 他分析的 是 已经 移植号的, mp4.tar 压缩包。分割的意思 就是 ,先解包,然后 在 分片, 然后 在打包。也就是说 , mp4 的打包的函数 就是这一个 就搞定了。
2025-05-14 14:16:03
819
原创 朱老师,3518e系列,第六季
3 samle_comm_venc. c 中 多了 , SAMPLE_COMM_VENC_Sentjin 这个发送函数,这个是自己实现的。因为 消费 与 生产的 速度 是不一定的, 有时候 生产快,有时候消费快,如果 某一个是 固定快的话,那么就没有 缓冲区的必要了。总结: rtsp 并没有像 ortp 那样 , 去编译库文件, 而是 直接 改的 源码, 这样的话, 更容易编译。也就是说, lsps , lpps , lsei I帧 ,都要加上分隔符, 后面的p帧 就不加 分隔符了。
2025-05-14 14:15:12
875
原创 朱老师,3518e系列, 第5季
第三种: 跟第二种是一样的,这里的 彻底不用 有线网, 指的是 nfs 挂载 也有 无线,其实是一样的。第二步 主要添加的是 平台的编译 选项 , 这样改的话, 可以 当作一个 模块来编译的。连接上之后 ,需要 是、配置一下 ip 地址, 因为此时 的 pc 的 ip 是 乱的。第三步 就是 在 设置 源码所使用的 头文件的 路径。这个也是 按照平台来的。按理说,不用移植了, 用之前的方法就可以连接呀。第六节, sta 模式下的 ortp 的实战。使用的是 ortp , 流程跟有线是一样的。
2025-05-14 14:14:54
301
原创 朱老师, 3518e系列, 第四季
海思 提供了 关于 3A算法 库文件, so, 以及 sample 的源码, 但是 3A的源码 没有提供。然后是看makefile, 可以看到 最后 是 以 so 的形式存在的, 并不是 ko 的形式。主要就是 注意一下 buf[] 数组的 数据的排列。涉及到硬件的 有两部分, 一个是 sensor , 一个是 cpu 的 isp 单元。load3518e 会指定一个 sensor 的参数,指定的 摄像头的型号。这里的地址 , 指的是 sensor 的寄存器的地址, 而不是 cpu 的。
2025-05-14 14:14:43
692
原创 朱老师, 3518e系列,第三季
然后是,Hi3516CV610_SDK_V1.0.1.0/smp/a7_linux/source/mpp/sample/common/sample_comm_venc.c 文件,首先是 Hi3516CV610_SDK_V1.0.1.0/smp/a7_linux/source/mpp/sample/venc/sample_venc.c 文件。修改的文件是,Hi3516CV610_SDK_V1.0.1.0/smp/a7_linux/source/mpp/sample/smp_linux.mak。
2025-05-14 14:14:28
848
原创 朱老师,3518e系列,第二季
首先 从 缓存池中拿一个缓存块,然后 进入VI, 处理后 进入VPSS, 处理后,进入 VENC ,处理完之后, 释放缓存块。它数据量大, 并且兼容 黑白图 效果不好,因为, 红绿蓝, 上来就是颜色,单色数值的不同表示的是亮度的不同。enWDRMode , 指是否 宽动态,宽动态 就是让 图片上的 最暗的地方亮一点,让最亮的地方暗一点。海思的编码 在 枚举定义的时候, 会有 E的标识 , 比如 PAYLOAD_TYPE_E。rawrgb 怎么得到rgb 呢,是从 周围的 rgb 的像素的值 ,算出来的。
2025-05-14 14:14:12
886
原创 朱老师,3518e系列,第一季
传输数据, soc 接收到数据之后,在传送到 flash 中。2、 bl0 将 uboot 拷贝到内存, 然后启动uboot ,hitool 通过向内存的 uboot 发送指令, 将 内存 中的 uboot 拷贝到spi flash .3、 制作的时候,需要考虑到, flash 的块 的大小,需要去数据手册中去找,但是,数据手册不好看。so 如果在编译的时候使用了,那么 在运行的时候,还要再 板子上进行部署 库文件。然后再单独编译的时候, 有可能 单独编译完之后,还不能用, 还需要一些 小操作。
2025-05-14 14:13:50
455
原创 耳机,三段式, 四段式,录音,播放
但我不相信, 没法明 四段式,之前,就没法通过耳机录音。所以我要做的就是 买一个 双头的 三段式 耳机进行测试。我们知道, 虽然 三段式 耳机, 没有录音的功能。原理 他是通过 两个 三段式 ,来解决的此问题。3588 的板子 就是 三段式。首先是 三段式与 四段式 的区别。四段式 ,分为 欧标 与 美标。然后是 三段式 是怎么录音的呢?三段式 是没有 录音的功能的。这也是 PC 机的配置。那么是怎么做到的呢?
2025-04-27 20:52:59
227
原创 2k1000LA , 调试串口改成通信串口, uart.
客户的问题解决了,但是 调试串口 改成通信串口的问题,并没有解决,我走的其他的路径。1 就是更改 设备树的 chosen 节点, 瑞芯微又单独的调试串口节点。2 就是 更改 命令行的 bootargs 参数。3 可能还与 /etc/inittab 有关。总结: 实际上 有几种思路了。
2025-04-14 20:52:35
79
原创 i2c 上拉电阻的计算。
问题: 主要是 遇到一个 3588s 的 ov13850 的 调试问题, 顺便看一下 i2c 的上拉电阻的计算问题。2、 如果非要自己算的话,需要 得到 完全的 数字,但是, 看看了看, device 数据手册上,都没说完全。还是 来自己算一下, ov13850 的 i2c 的电容吧, 这是一个 范围值。如果 device 的电流没有找到就要使用 soc 的gpio 口的电流了。原理图上我看是 2.2K的电阻,我看看 能不能对的上。这里 tr 是查数手册得到的, Cb 是假设的,
2025-04-10 14:11:41
208
原创 makefile , CFALGS 与 EXTRA CFLAGS
1 与 CFGLAGS 是一样的, 相当 对 CFLAGS的补充。CFLAGS ,与gcc 有关, 与 头文件有关。然后来看一下 EXTRA CFALGS。作为 CFLAGS 的补充 配合使用的。LDFLAGS , 与 库路径有关。LDLIBS , 与具体的库有关。首先来看一下 CFLAGS。那么二者有什么区别呢?
2025-04-03 18:31:30
233
原创 linux , 进程间 通信, 信号量
1 、 这个程序 并没有 销毁 信号量 , 应该是 系统管理的,只要不销毁,即便程序推出了依然是存在的。共享内存的 id ,与信号量的 id 是不相关的,可以相同, 也可以不同。然后 在得到信号量之后 就不是 sleep 了,而是 对共享内存进行读写。只要 将 共享内存的代码 + 信号量的代码 就可以了。2 、 这个信号量 是通过 key 值 来获取的。然后就是 共享内存 + 信号量 的 内容了。这里 我都不行改他的内容,写的太好了。2 、 只要不销毁,就会一直存在的。来看一下,应用程序。
2025-04-02 14:56:58
291
原创 imx6q , lvds0 ,使能
文件 , iTOP-iMX6_android6.0.1/bootable/bootloader/uboot-imx/board/freescale/mx6sabresd/mx6sabresd.c。文件: iTOP-iMX6_android6.0.1/kernel_imx/arch/arm/boot/dts/imx6qdl-sabresd.dtsi。注意: 这个问题的解决是由前提的,就是 lvds1 已经调试好的情况下。我并没有 像这样 去修改 uboot 的 bootargs 参数。首先是 uboot。
2025-04-01 10:27:22
291
原创 nodejs 安装 混乱的概念总结。
这是我的实际测试, nodejs , 是通过 apt 安装的, node 是通过n 安装的。yarn 是facebook 开发的,需要再linux 下单独安装。nvim , n 都是 关于nodejs 的版本的管理工具。这两个 都是 安装 javascript 的 软件包的。npm 是 node 或者 nodejs 自带的。nodejs 是 javascript 的解析器。node 就等于 nodejs 了,都是解析器。nade 是 nodejs 的命令行工具。nodejs 与 node 的关系。
2025-03-27 10:13:06
205
原创 linux 动态库, 静态库, 链接, 连接
3 在运行的时候,如果 一个程序运行时 已经用到了一个库,在内存中已经有了,这个时候你又启动了一个程序,也是用到了 一个库函数,这个时候,就直接使用 内存中已经有的函数。2 编译可执行程序 就相当于 ,将 多个.o 文件 合成一个 可执行程序。3 编译需要连接静态库,在板卡上旧不用 在 拷贝 xxx.a 库了。2 在执行的时候,需要将 xxx.lib 拷贝到 板卡上才行。1 在编译的时候,需要连接 动态库,这里不是很理解。1 xxx.a 就是 很多个 .o 的集合。网上的这个资料讲的比较好。
2025-03-21 12:12:31
146
原创 rk3588, 风扇,读取cpu 温度,负载。
3 然后使用 cat /sys/class/thermal/thermal_zone0/temp 的方式,读取温度,并且存到一个文件中。2 然后开始 通过 top 读取 cpu 负载, 并且将打印信息保存到一个 文件。1 首先开一个 stress , 开始压力测试。问题: 测试 两个风扇,看看哪个降温的效果好。1 stress 的用法。2 top 的用法。
2025-03-21 09:22:30
324
原创 rk3568 以太网eth1 , 定制板 phy调试问题。
phy 问题, 就是 照着 公司底板对硬件就行,完全是硬件问题,不用改 软件。所以 重新焊接了一下, 但是系统启动之后, phy 芯片发热严重,很明显烧了。所以 给客户免费 换了一个 新的phy , 发现可以识别了。后来发现 phy 芯片的焊接问题,有一边 翘起,没有焊上。后来发现 125M的 时钟线 没有接到 核心板,。于是 通过飞线方式 ,接上了 125M 的时钟。问题: 客户定制底板的 phy 网络不通。但是这个问题, 只能客户重新打板了。估计是 时钟 使用飞线的原因。具体的报错信息 ,丢了。
2025-03-19 17:27:34
80
原创 rk3588s , android12 ,root
可以参考我自己的 csdn 上的 rk3588 的root 权限 如何去改动 sdk.就是 这里一定要 对准,因为有好多个 /system/xbin.我就是 严格按照 自己写的 内容 去更改的文件。
2025-03-10 12:00:27
168
原创 rk3568 翼辉系统 烧写。
3、 我这里 遇到一个 问题,就是, 烧写完之后, 网络 无法ping 通, 重新 固化烧写之后,这个问题解决。然后是 重启, 在 uboot 中, 配置 bootcmd ,其实 还是 加载 这个 bin 文件到内存。然后是 通过 filezilla , 将 这个 bin文件 ,传到 emmc 的 固定目录。原来是 新的 base 工程有更新, 所以 之前的Bin 文件应该是不能用了。然后就是 利用 翼辉的 IDE 进行 base 工程的部署。然后就是 , USB+ qt 驱动的部署。
2025-03-08 09:49:47
347
原创 ubuntu , 虚拟机, 局域网
1、 首先对方的电脑 的 要分享的文件夹 要 作此配置。2、 然后是我自己的 电脑 要 做的配置。我要访问 局域网的 其他的网络。或者是 让我 输入 账号密码。
2025-03-05 14:09:34
223
原创 candence 相关的知识
1 首先是 比如我打开了一个 brd 的 pcb . 那么我怎么样确定 一个器件 在封装库中的 标号呢?2 我怎么样 导入 别人的库中的某一个元器件呢?首先是 怎么将别人的库 导入到 自己的 PCB中。那么怎么 样 添加 库文件中的一个 器件呢?这也就涉及到 怎么到处 bom 表格。我实际测试 按照这种方式 是可以的。直接看 bom 表就可以了。
2025-02-25 17:22:05
191
原创 2k1000LA 使能 nand.
我觉得 ,之所以 再内核中去移植 Yaffs2 文件系统,就是为了 使用这个命令。发现 可能再 龙芯写的 nand 的驱动上有关于 partition 的内容。突然想起来 ,去看了一下 韦东山的关于nand flash 的驱动的视频。背景 : 默认的 发货的镜像 确实 是识别不了 nand 的。但是 我之前 已经写好了文档,因此 拷贝到线上。这里实际上是 我参考了 别人家的 设备树文件。在menuconfig 中使能一下。再menuconfig 中使能一下。但是居然是可以 使用的。
2025-02-24 17:27:48
41
原创 uboot,s5pv210 , lowlevel_init.s 分析
我知道 gic 是通过 中断号 来区分 不同的中断类型的。2 然后 在异常函数中, 会 修改LR的值---->保存现场寄存器---->跳转到 harndleirq ----->回复现场寄存器---->PC=LR ,4 设置 电平 是边沿触发, 还是电平出发, 这里的出发方式与 外设的 出发方式是不一样的,这里主要指的是 , gic 与cpu 的 触发方式。1 中断发生之后, 硬件会自动完成4步, 保存cpsr----->设置cpsr ---->设置LR----->pc跳转到 异常向量表。
2025-01-21 17:16:13
1056
原创 uboot,s5pv210 , 编译器的使用
并且 他将自己编写的 myboot 烧写到开发板是可以运行的,这说明 在 irom 的程序已经初始化基本的硬件了。这里的 0xD0020010 指的是 uboot 被加载到内存中的地址,这个地址是 数据手册中写的。他是这样的,他会将 myboot, ---->myboot.bin---->myboot.16k.接下来看一下, 在链接之前的 .o 文件的反汇编与 链接之后的 .o 文件的反汇编的区别了。然后是 将 myboot --->myboot.bin----->myboot.16k。
2025-01-16 10:59:49
613
原创 韦老师调试 gpio BUG 笔记 + 自己 rk3562 gpio 调试
1 首先是 之所以 无法 通过 sysfs 控制,是因为 GPIO控制器 配置成了 开漏模式,所以 在echo 高电压的时候,测量的是 1.5V , 这是因为,IO口的电压是不确定的。但是这里有一个疑问: 为什么 sysfs 文件系统,可以设置 高低电平呢,----->估计在实现的源码里也有关于 打开时钟,关闭时钟的操作。可以看到 gpio133 我是配置了 gpios 的 所以不能使用sys 了,gpio134 是我 使用sys 设置的。3 最后发现是 uboot设置了 gpio 的开漏输出。
2025-01-15 21:32:31
296
原创 nvim , neovim , Lua 语法, text object , IDE(3)
如果一句换,没有句号, 但是遇到了一个空行, 那么这个 s 的命令就跟 p 的命令是一样的了。小写的w , 与到非 26个字母就会停下来, 而 W, 则会只遇到空格才这样。句子的选择就是 , 以 句号家+空格,或者 句号+(后面没有子母了)来结尾的。说明 : 了解一下 nvim 中的基本的 文本的类型。1 首先 模块 是以 table 的形式存在的。如果我的光标 在单词的中间,怎么选中整个单词呢?可以看到是以上下的空行 来进行区分的。段落的标志是以空行来进行的标志的。但是是 以空格来进行区分的。
2025-01-14 20:07:57
507
原创 nvim 打造成可用的IDE(2)
我基本上断定是 blankline 的问题了,摸索了一下, indent-blankline 是可以安装成功的,但是依然会有 之前的 无法打开c 文件的状况出现。3 也就是说,只要安装了插件之后,就会自动加载,不管你有没有配置这个插件,应该会有一个默认配置的。关于 nvim 的一个报错。一下这两种方式 更改的都是 命令行模式下的 字体,而不是 在图形界面的终端的字体。网上查了一下, 是关于 , blankline.nvim 插件的原因。1 这个报错的原因是 indent-blankline 的插件的原因。
2025-01-11 11:01:01
915
原创 uboot ,s5pv210, start.S分析
也就是说, 你有两种下载方式,一种是下载uboot 社区的代码,还有一种是下载cpu 厂商的 维护的uboot 的代码,这两种方式的 代码下载的地址是不一样的。也正是这样 才有了 对程序的 分段,因为程序要与 数据在一起了,于是 分出了 代码段,rodata 段,data 段, bss 段。这里的 pl0 , pl1 指的是权限的等级,内核只使用了 pl1.内部上拉的话,如果外部高电压,那么是高电平,如果外部是低电平,那么也是一个高电平,因为虽然是低电平,它不回去接到地上去。
2025-01-10 15:05:47
691
原创 摄像头,AWB,白平衡
2 、 是加上sensor 的电流 进入 isp 之后,ISP还会做一个 矫正,就是减去 BLC。3、 OBC 是指 暗区矫正,有专门的一部分,用黑布盖住,不曝光,专门用于矫正,具体原理不去分析。所谓的色温,就是指给一个黑色的物体加热, 随着温度的升高,它发出的颜色,由红色变成了 蓝色。有三种方式,预设的白平衡, 手动的白平衡,以及自动的白平衡。也就是说, 一种颜色 , 在不同的环境的光的照射下, 颜色会出现不一样。4、 如果 这个矫正减的少了,图片就发紫, 如果减的多了,图片就发绿。
2025-01-10 14:17:12
218
原创 rk3568 , buildroot , qt ,使用sqlite, 动态库, 静态库
3 -I (incldue) , 指的是 在搜索头文件的时候, 首先去 /usr/include 目录寻找,如果找不到的话,就去 自己指定的这个目录下寻找。4 -L , 指的是 指定了库的路径,也是首先去默认的 /usr/lib 目录下寻找,如果找不到的话,就去 你指定的牧区去寻找。5 -l (小写L) , 指的是 所连接的文件,既指 动态库,也指静态库, 这两个指定的方式上没有差别,都存在的话,优先选择动态库。然后 在编译 C的 sqlite 应用程序的时候,使用的这个命令。
2025-01-10 14:16:45
1242
原创 关于接线 ,端子, 杜邦线的概念
问题: 客户有个问题,就是 这个接口怎么接线, 因为我也没有 设计过底板 ,所以了解一下 概念。可以看到, 1.0mm , 1.27mm , 2.0mm , 2.54mm 都包括了。好了,我基本上确定了, 原理图上的标号,应该是 他们自己加上去的,可以看到杜邦线的间距 有很多种,基本上都包括了。那么真正的物料的名称,应该是在 bom 单中de。原来这里的 各种H 指的其实是 线间距。好了,在来看一下 3588 的原理图吧。首先是 关于 杜邦线的间距。然后看一下 端子的型号。
2025-01-08 20:48:46
595
原创 uboot ,s5pv210 ,bootm分析
(*(unsigned int *)(0xD0037F98)) 这表示 从这个地址 拿到了 一个值, 然后 (copy_sd_mmc_to_men) 这句表示 准换成 这个类型,前面已经定义过了,这是一个 函数的类型。这句就表示 去调用 三星自己 固化的函数 copy_sd_mmc_to_men 了。这句得到了 os 中的某个字段的内容。
2025-01-03 20:44:31
186
原创 imx6q plus , android6.0 , uboot, 调试 5寸屏, logo显示
经过我的测试 确实是这样的,如果我设置成 5寸屏幕的话,uboot 无法正常显示 logo , 会花屏。注意在uboot 中, 结构体 struct display_info_t 中的 pixclock 不是指的 频率, 而是指的时间,单位是 ps。我是这么做的, 就是 我先让你 在uboot 中显示logo , 然后过一会儿 我在 使能电源的引脚。事实上 ,经过我的测试, 上电白屏的时间缩短了, 但是 还是会有 一瞬间的白屏,关于uboot 的 显示的参数 是在 uboot 的这个文件。
2025-01-03 20:09:25
120
原创 uboot, s5pv210 , main_loop 分析(16)
main_loop 的代码如下: 44 43 void main_loop (void) 42 { 41 #ifndef CONFIG_SYS_HUSH_PARSERE 40 ▎ static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, }; ■ Use of undeclared identifier 'CONFIG_SYS_CBSIZE' 39 ▎ int len; 38 ▎ int
2024-12-25 17:44:08
682
原创 rk3588 android12 root
我在 串口上 实际上 是可以 使用 su root 命令 进入 root 的,但是 使用 root check apk 检测的时候却通不过。然后是这个文件, system/core/libcutils/fs_config.cpp。然后是 这个文件 kernel-5.10/security/commoncap.c。然后是这个文件 , system/core/init/selinux.cpp。然后 是这个文件 system/extras/su/su.cpp。好 , 接下来 就是 我自己的 无脑操作了。
2024-12-25 17:11:51
767
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人