自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (2)
  • 收藏
  • 关注

原创 海思平台web开发_boa_cgic移植

在开发板上,/etc目录下创建boa文件夹,将boa.conf文件放到该目录下。开发板上,根据boa.conf文件配置内容,在/var目录下创建以下文件。将虚拟机端/etc/mime.types文件拷贝到开发板的/etc下。make 生成libcgic.a和cgictest.cgi文件。./configure //生成Makefile。将红框中3个变量注释掉,和log.c中重复定义了。下载地址:http://www.boa.org/make //生成boa可执行文件。板端运行./boa,

2024-11-21 11:20:46 99

原创 海思平台isp之raw图回灌调试

isp调试中,经常会遇到一些特定场景的效果需要优化,但由于某些原因和成本考虑,开发人员无法亲临现场,这个时候采集场景raw图回灌到板端调试,就显得尤为方便了。在PQTool上找到Timing Attr,打开Enable使能,将帧率设置为30,也可按照自己需求设置帧率,该帧率即为raw图回灌时帧率。步骤3:单击Send,提示sent raw图到设备成功,可以看到显示器成功显示发送的raw图显示画面。板端进入SS928V100_PQ_V2.0.2.2 ,运行StartControl.sh脚本。

2023-12-14 15:35:02 1156

原创 海思平台isp之ccm标定

步骤9:单击图中按键,加载6500k色温下的ccm参数,参照6500k raw图标定步骤,完成所有raw图标定。将标定完成的CCM参数加载到板端,在色温箱中,根据不同色温下的实际色彩效果,手动调整对应色温的CCM参数。步骤3:导入当前raw图时的gamma值,在gamma界面下可保存;步骤4:导入步骤3中的gamma值作为目标gamma值;(1)调整各色块校正权重,对于偏色的色块,增加权重。步骤10:将标定完成的CCM参数,加载到板端。步骤1:选中当前要标定的色温raw图;步骤2:点击选中该raw图;

2023-12-14 14:58:13 1326 2

原创 海思平台isp之awb标定

用鼠标框住Block19块,会出现亮度图信息,当前块19亮度为845,在0.8左右,该raw图合格,可采集。勾上Dump Raw,我这里raw10,即Depth为10bit,那么Block19的亮度应该为1024。(2)标定时进行半标定,将标定模式auto改为semi_auto,反复调试,使标定后的曲线满足要求。若标定效果不好,可通过反复采集raw图的方式来进行标定,尽量让raw图满足要求。我这里黑电平为64,按实际标定的黑电平为准,或者问sensor FAE。(1)设置raw图基本信息。

2023-11-13 15:03:59 1109

原创 海思电子变倍代码实现

海思实现电子变倍代码

2022-07-30 21:23:04 1000

原创 海思AE自动曝光图像闪烁优化

文章目录一. 原因分析二. 应用层优化1. 增大自动曝光对画面亮度的容忍度。2. 固定自动曝光时间,只调节曝光增益(仅调试验证)。3. 通过减小感兴趣区域权重来减小感兴趣区域曝光对整个图像的影响:三. 驱动层优化1. 调节ISP增益与sensor曝光时间与增益同步生效2. 调节曝光时间步长和曝光增益步长到合理比例使曝光过渡顺滑3. 优化sensor 抗闪公式一. 原因分析现象:室外场景时,移动摄像头,AE自动曝光出现图像闪烁的现象,摄像头停止移动,图像停止闪烁。原因:1. 室外光线太强,曝光时间调

2021-07-29 19:27:24 3336 2

原创 sensor调试之从模式(外同步)

文章目录1. 什么叫sensor从模式2. sensor从模式的应用场景3. 配置sensor从模式4. sensor从模式调试4.1. 从模式抓图曝光问题4.2. 从模式下海思vo不能抓取实时帧问题1. 什么叫sensor从模式通常情况下,sensor被配置成主模式,即sensor主动输出帧图像数据。但某些情况下,sensor需要被动通过外部信号触发达到帧图像数据输出。2. sensor从模式的应用场景情景一:多个sensor需要同步成像,比如多个sensor各自拍摄不同角度的图像进行合成,这个

2021-07-20 22:24:39 6420 3

原创 海思图像质量之HiPQTool调试

文章目录一. HiPQTool 界面二. 图像调试三. 将调试参数写入程序中一. HiPQTool 界面二. 图像调试三. 将调试参数写入程序中

2021-07-06 22:17:58 1789 2

原创 海思图像质量调试之HIPQTools环境搭建

文章目录一. 准备工作1. 需要的工具2. 添加自己的sensor(sdk中没有做支持的)二. 运行HiPQTool1. 用 ITTP_Stream 预览实时图像(不需要用户写板端程序,sdk工具包中提供)2. 用户程序实现图像输出一. 准备工作1. 需要的工具在sdk 路径Hi3516C V500R001C02SPC021\Hi3516CV500R001C02SPC021\Hi3516CV500R001C02SPC021\01.software\pc\PQTOOLS下,找到如下工具:PC端:Hi

2021-06-28 13:45:22 1924 1

原创 海思添加sensor驱动

文章目录一. sys_config.ko 编译1. sys_config.ko 作用说明2. 配置sensor总线3. 配置sensor时钟二. sensor 驱动编译三. SDK中增加 sensor 类型一. sys_config.ko 编译1. sys_config.ko 作用说明2. 配置sensor总线3. 配置sensor时钟二. sensor 驱动编译三. SDK中增加 sensor 类型...

2021-06-22 17:31:13 2488 1

原创 海思接收bt1120外同步视频流

文章目录一. 什么叫bt1120外同步1. bt1120协议一. 什么叫bt1120外同步1. bt1120协议BT1120协议通过16位数据传输的,其中8位用来传输亮度,就是Y值,另外8位用来传输色度,就是UV值。所以接收到的数据图像如果不完整,一般是Y值出了问题,颜色不对,就是UV值不正确。从上图中我们可以看到,数据中前面有4字节内容,为 FF 00 00 XY,这4个字节内容,我们把它叫做基准码,其中FF 00 00 是固定的,XY是变化的,用来表示当前数据类型,是有效图像数据还是消隐区

2021-06-11 10:22:54 3218 4

原创 海思wifi驱动二之驱动失败问题排查及调试

文章目录1. 开机内核扫卡是否成功2.本章节主要分析wifi驱动加载失败的情况1. 开机内核扫卡是否成功设备树中将sdio1状态打开后,内核启动时,会扫描sdio1是否挂接sdio/sd/mmc设备,如果扫描成功,会有如下打印信息:打印出扫描到的sdio设备并分配地址若没有打印以上信息,说明扫卡失败。海思没有扫描到sdio wifi设备,这个时候就需要检测wifi设备是否正常上电启动。排查措施如下:reg_on引脚是否为高电平。wifi设备晶振是否正常起振。当上面两条都满足并且sdi

2021-06-04 10:12:23 1491

原创 海思wifi驱动一

文章目录环境说明一. 修改wifi驱动1. 修改reg_on和host_wake引脚2. 屏蔽扫卡操作3. 将wifi驱动代码放到linux内核中进行编译二. 配置内核1. CFG80211配置2. sdio配置3. 配置wifi驱动模块4. 编译内核和wifi驱动模块三. 修改uboot中 sdio口复用四. 在板子上调试 wifi驱动环境说明平台:hi3516cv500wifi模块:AP6255 (sdio接口)kernel版本:4.9.37wifi驱动版本:bcmdhd.100.10.54

2021-06-03 15:23:47 3912 1

原创 海思mipi屏驱动二

二. MPI_VO 配置按照官方提供的配置流程,继续配置VO部分。1. 设置vo公共属性这里直接上代码,关于里面所用到的参数,可以在上一章中找到。/* 配置输出序列 */int vo_output_sequence_set(void){ HI_S32 s32Ret; VO_DEV VoDev = 0; /* 这里是避免VO已经打开设置失败的情况,如果是开机设置也可以不加 */ HI_MPI_VO_Disable(VoDev); VO_PUB_ATTR_S stPubAttr =

2021-04-14 09:23:02 844

原创 海思mipi屏驱动一

一. 查看海思官方文档首先,我们查看海思官方文档 《屏幕对接 使用指南》。路径为:\ReleaseDoc\zh\02.only for reference\software。打到MPI接口屏对接部分,看到MPI屏配置流程如下:1. 点亮背光背光通常是由一个IO口来控制,高电平即可点亮背光,具体操作看硬件连接及前面讲的海思寄存器操作。某些oled屏可能没有背光,我用的就是,使能VO后才能屏才会亮,即有数据显示才会亮屏。2. 复位MIPI屏查看屏数据手册,根据屏的复位时序来控制IO口的高低电平输

2021-04-09 23:40:39 2311

原创 海思驱动开发之寄存器操作

海思驱动开发之寄存器操作1.查看海思数据手册2. 配置GPIO为输入输出步骤1:配置复用控制寄存器步骤2. 配置方向寄存器步骤3. 配置数据寄存器3. 配置为中断模式总结1.查看海思数据手册这里需要用到的文档有两个,这里,我们以Hi3516EV200为例。在SDK中打开“ReleaseDoc\zh\00.hardware\chip\Hi3516EV200”路径,里面有3个文档:《Hi3516EV200 经济型HD IP Camera SoC用户指南》即为 Hi3516EV200 的数据手册,《Hi3

2021-04-04 00:30:59 2089 2

原创 关于volatile

1.volatile 维基百科volatile关键字用来阻止(伪)编译器认为的无法“被代码本身”改变的代码(变量/对象)进行优化。如在C语言中,volatile关键字可以用来提醒编译器它后面所定义的变量随时有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。在C语言中,编译器会根据你的代码进行优化,而volatile

2020-08-06 13:49:08 164

原创 数组参数退化为指针

C语言中的数组参数会退化为指针退化的意义当向函数传递数组时:将整个数组拷贝一份传入函数 X 将数据名看做常量指针传数组首元素地址 c语言以高效作为最初设计目标:(a) 参数传递的时候如果拷贝整个数组执行效率将大大下降。(b) 参数位于栈上,太大的数组拷贝将导致栈溢出。二维数组参数二维数组参数同样存在退化的问题二维数组可以看做是一维数组二维数组中的每个元素是一维数据。二维数组参数中第一维的参数可以省略void f(int a[5] ==> void

2020-05-17 17:35:56 479

原创 5. uboot配置过程详解

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结uboot 配置过程详解1. mkconfig 脚本的6个参数2. uboot 的脚本链接uboot 配置过程详解1. mkconfig 脚本的6个参数$(@:_config=) arm s5pc11x x210 samsung s5pc110x210_sd_config里的_config部分用空替换,得...

2020-04-16 20:49:36 476

原创 4.uboot主makefile分析2

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结uboot主makefile分析21. OBJTREE, SRCTREE, TOPDIR2. MKCONFIG (101行)3. include $(obj)include/config.mk(133行)4. ARCH_CROSS_COMPILE5. $(TOPDIR)/config.mk(主makefile的185行)...

2020-04-14 21:52:00 234

原创 3.uboot主makefile分析1

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结uboot主Makefile分析11. uboot version确定2. HOSTARCH 和 HOSTOS3. 静默编译(50-54行)4. 2种编译方法uboot主Makefile分析11. uboot version确定uboot的版本号分为3个级别:Makefile的24-29行VERSION:...

2020-04-13 21:29:55 219

原创 2. uboot源码目录分析

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结uboot的源码目录分析1.九鼎官方uboot和三星原版uboot对比2.各文件介绍3.各个文件夹介绍uboot的源码目录分析1.九鼎官方uboot和三星原版uboot对比以九鼎官方的uboot为蓝本来学习的,以三星官方的这份做对照。不同版本的uboot或者同一版本不同人移植的uboot,可能目录结构和文件内...

2020-04-12 22:15:31 216

原创 1. x210官方uboot配置编译实践

x210官方uboot配置编译实践1. 找到官方移植好的uboot(BSP概念)2. 在linux源生目录下配置编译3.配置4.编译得到 uboot.binx210官方uboot配置编译实践1. 找到官方移植好的uboot(BSP概念)源头的源代码是uboot官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的SoC对应的移植版本。S...

2020-04-12 22:13:51 252

原创 5. shell中其他值得关注的知识点

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结shell中其他值得关注的知识点1. case语句2. 调用shell程序的传参3. while 循环和 case 语言和传参相结合shell中其他值得关注的知识点1. case语句shell 中的 case 语句和 C 语言中的 switch case语句作用一样,格式有差异。shell 中的 case...

2020-04-11 22:56:26 159

原创 4. shell 中的循环结构

shell 中的循环结构1. for循环2. while 循环3. echo 的创建和追加输入文件shell 中的循环结构1. for循环要求:能看懂,能改即可。不要求能够完全不参考写出来。因为毕竟嵌入式并不需要完全重新手写shell,系统管理员(服务器运维人员,应用层系统级管理开发的才需要完全掌握shell)2. while 循环和 C语言的循环在逻辑上无差别...

2020-04-11 22:55:33 180

原创 3.shell编程学习2

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结shell 编程学习1. shell 中调用linux命令2. shell 中的选择分支结构shell 编程学习1. shell 中调用linux命令直接执行反引号括起来执行。有时候我们在shell中调用linux命令是为了得到这个命令的返回值(结果值),这时候就适合用一对反引号(键盘上Esc按键下面的那个按键,...

2020-04-07 11:55:49 118

原创 2. shell编程学习1

1. shell中使用linux命令2. shell 中的变量定义和引用3. shell 中无引用,单引号和双引号的区别1. shell中使用linux命令练习1:当前目录下创建文件a.txt练习2:当前目标下创建文件夹dir,dir下创建文件b.txt**总结:**以上两个练习的目的是让大家基本学会写脚本,明白脚本编程其实就是把以前在命令行下输入的命令挪到脚本程序中去然后一次执行...

2020-04-07 11:51:53 147

原创 1.1编写第一个shell程序

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结shell 介绍1. shell 是操作系统的终端命令行2. shell 是一类编程语言3. 常用 shell 语言:sh, bash, csh, ksh, perl, python 等4. shell 脚本的运行机制:解释运行编写第一个 shell- 1. 编辑器,编译器,运行方法(脚本的3种执行方法)- 2....

2020-04-07 11:48:38 639

原创 9. uboot 中对 Flash 和 DDR 的管理

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结1. uboot 阶段 Flash 的分区所谓分区,就是说对 Flash 进行分块管理。PC 机等产品中,因为大家都是在操作系统下使用硬盘的,整个硬盘由操作系统统一管理,操作系统会使用文件系统帮我们管理硬盘空间。(管理保证了文件之间不会互相堆叠),于是乎使用者不用自己太过在意分区问题。在 uboot 中是没有操作系统 的,因此我...

2020-04-06 10:02:29 341

原创 8. uboot 环境变量

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结1. 环境变量如何参与程序运行环境变量有 2 份,一份在 Flash 中,另一份在 DDR 中。uboot 开机时一次性从 Flash 中读取全部环境变量到 DDR 中作为环境变量的初始化值,然后使用过程中都是 DDR 中这一份,用户可以用 saveenv 指令将 DDR 中的环境变量重新写入 Flash 中去更新 Flash 中环...

2020-04-05 21:22:13 185

原创 7. uboot 常用命令 4

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结1. SD卡/ iNand 操作指令 movi1 开发板如果用 SD 卡/EMMC/iNand 等作为 Flash,则在 uboot 中操作的指令为 movi(或mmc)2 movi 指令是一一个命令集,有很多子命令,具体用法可以 help movi 查看。...

2020-04-05 20:10:57 217

原创 6. uboot 常用命令 3

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结1. tftp 下载指令tftp(1)uboot 本身主要目标是启动内核,为了完成启动内核必须要能够部署内核,uboot 为了部署内核就需要将内核镜像从主机中下载过来然后烧录到本地 flash 中。uboot 如何从主机(windows 或者虚拟机 ubuntu)下载镜像到开发板上?有很多方式,主流方式是:fastboot 和 tft...

2020-04-04 21:47:54 145

原创 顺序栈

1. 什么叫顺序栈百度百科中的定义如下顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(数组)依次存储栈中数据元素,由于人栈和出栈运算都是在栈顶进行,而栈底位置是固定不变的,可以将栈底位置设置在数组空间的起始处;栈顶位置是随入栈和出栈操作而变化的,故需用一个整型变量top来记录当前栈顶元素在数组中的位置解释栈的元素依次存放在一个一维数组中。下标小的一端作为栈...

2020-04-04 16:35:50 2516

原创 5. uboot 常用命令2

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结1. 设置(添加/更改)环境变量:setenv/set用法:set name value2. 保存环境变量和更改:saveenv/save(1)saveenv/save 命令不带参数,直接执行,作用是将内存中的环境变量的值同步保存到Flash中环境变量的分区。注意:环境变量的保存是整体的覆盖保存,也就是说内存中所有的环境变量都会整...

2020-04-03 08:29:27 269

原创 4. uboot 常用命令1

本文内容来自对《朱有鹏嵌入式linux核心课程》学习总结1. 类似 linux 终端的行缓冲命令行(1)行缓冲的意思就是:当我们向终端命令行输入命令的时候,这些命令没有立即被系统识别,而是被缓冲到一个缓存区(也就是系统认为我们还没有输入完),当我们按下回车键(换行)后系统就认为我们输入完了,然后将缓冲区中所有刚才输入的作为命令拿去分析处理。(2)linux 终端设计有3种缓冲机制:无缓冲,...

2020-04-03 07:01:46 150

原创 3.uboot 的工作方式

本文内容来自对《朱有鹏嵌入式linux核心课程》总结1. 从裸机程序镜像 uboot.bin 说起(1)uboot 的本质就是一个裸机程序,和我们裸机全集中写的那些裸机程序xx.bin 并没有本质区别。如果非说要有区别,那就是:我们写的大部分小于 16kb(一般 uboot 在 180k-400k 之间)(2)uboot 本身是一个开源项目,由若干个 .c 文件和 .h 文件组成,配置编译...

2020-04-02 22:18:29 198

原创 2. uboot 能做什么?

本文内容来自对《朱有鹏嵌入式linux核心课程》总结1. 为什么是 uboot1.1 uboot 从哪里来(1)uboot 是 SourceForge 上的开源项目(2)uboot 项目的作者:一个德国人最早发起的项目(3)uboot 就是由一个人发起,然后由整个网络上所有感兴趣的人共同维护发展而来的一个 bootloader。1.2 uboot 的发展历程(1)自己使用的小开源项...

2020-04-02 11:09:44 241

原创 1.uboot简介

本文内容来自对 《朱有鹏嵌入式linux核心课程》 学习总结1. 为什么要有uboot1.1 计算机系统的主要部件(1) 计算机系统就是有 CPU 来做核心进行运行的系统。典型的计算机系统有:PC 机(台式机+笔记本),嵌入式设备(手机,平板电脑,游戏机),单片机(家用电器像电饭锅,空调)(2) 计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的...

2020-04-02 10:17:12 197

原创 双链表

什么是双向链表我们知道单向链表中有一个结点指针指向下一个结点,那么双向链表,顾名思义,双向链表有两个结点指针,一个指向前一个结点,一个指下一个结点。双向链表的优点相对于单向链表的优点,双向链表不仅可以访问下一个结点,还可以访问下一个结点,可以更灵活的做一些复杂的处理。双向链表的实现实验代码double_linklist.h#ifndef _DOUBLE_LINKLIST_H_#...

2020-03-20 19:53:29 129

原创 单链表

什么是链表关于链表,百度百科 中有如下定义链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表的优点使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充...

2020-03-18 21:44:34 186

51单片机学习经典程序集

51单片机初学者必备的经典程序集,分C语言程序和汇编语言程序两大类

2011-06-17

C++程序设计实验指导书

C++课程实验指导书 目 录 第一部分 VC++开发环境 1 一、Visual C++6.0开发环境简介 1 二、控制台应用程序的创建 5 三、程序调试 9 第二部分 C++实验项目 14 实验一 基本数据类型与输入输出 14 实验二 表达式和语句 16 实验三 函数 19 实验四 程序结构 24 实验五 数组 29 实验六 指针 33 实验七 引用 38 实验八 结构体 40 实验九 类与对象 47 实验十 构造函数 52 实验十一 拷贝构造函数 56 实验十二 静态成员与友元 60 实验十三 继承 63 实验十四 运算符重载 67 实验十五 多态性 72 实验十六 模板 80 实验十七 I/O流 87

2011-04-10

空空如也

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

TA关注的人

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