自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式-老费,一个分享专业嵌入式知识的blog

专注于嵌入式软件系统性能优化

  • 博客(1560)
  • 资源 (4)
  • 收藏
  • 关注

原创 Linux Camera驱动开发(IPCam Soc驱动开发特点)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        前面我们聊过,树莓派的soc是怎么进行camera sensor驱动配置的。基本上它的camera驱动还是按照linux v4l2那一套处理的,比如说sensor代码放在什么地方,platform平台代码放在什么地方,这部分都是公开的,大家也都是可以看到源码的。但是ipcam soc的驱动,尤其是sensor驱动,可能和大家想的不一样。

2026-02-11 23:28:36 613

原创 Linux Camera驱动开发(常见sensor驱动开发的误区)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        关于摄像头,大家都知道很有用,但是如何开发camera,大家并不是很清楚。或者说,大家都知道sensor开发很有用,但是怎么配置、怎么学习,很多同学并不是很清楚,今天正好可以和大家一起讨论一下。

2026-02-10 12:08:39 267

原创 Linux Camera驱动开发(fpga + csi rx/csi tx)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        现实生活中,有很多的算法是soc isp没有实现的。而图像处理的时候,又需要有这些算法,并且客户也愿意承担额外的成本开支,这个时候应该怎么办呢?比较好的办法,就是在soc开发板前面加一个fpga开发板,fpga开发板的作用就是添加自己的算法,这样就可以同时兼顾fpga和soc的优点了。

2026-02-06 16:43:27 646

原创 Linux Camera驱动开发(用树莓派学习camera驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        现在是一个ai的时代,不管是图片,还是文字、语音,几乎所有的东西都要和ai沾上边。就拿图像来说,大家想的都是用gpu、npu、cpu从图像中来获取信息,但是怎么获取高质量的图片,大家却不是很关心。而这一点,其实是十分重要的。所以对图像感兴趣的同学,不妨多学学lense、sensor、驱动、isp这些,这样就会对图像有更深的认识。

2026-02-05 15:25:01 435

原创 Linux camera驱动开发(mipi、d/cphy、dsi和csi2)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        说到camera,除了i2c之外,还有一个概念有必要了解下,那就是mipi。当然不仅是mipi,还有d/cphy、dsi、csi。这些概念也有必要了解清楚,这样在后续的开发中才会游刃有余。需要注意的是,这里的mipi、d/cphy、dsi、csi2都是硬件实现,基本上软件知道怎么配置的即可。

2026-02-03 21:39:51 840

原创 Linux camera驱动开发(串行和解串)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        目前的camera大部分都是数字camera,而且是cmos camera。这也是用的最多的一种camera。camera的接口以mipi为主。这种接口的好处就是数据传输快,camera分辨率高、帧率高。但是缺点也是很明显的,那就是传不远。这样对于一些特定的场合,就不是很方便了,比如说汽车和医疗。这种情况下就出现了串行芯片和解串芯片,专门应用于这种长距离传输的场景。

2026-02-03 07:58:36 357

原创 Linux camera驱动开发(DVP接口的camera sensor)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        很多的sensor除了支持mipi接口之外,还支持dvp接口。实际运行过程当中,开启哪一种接口,就看i2c是如何配置sensor的。对于低分辨率的camera,dvp使用还是比较多的。但是如果分辨率比较高,例如4k 800w像素以上,那么用dvp就很吃力了,这个时候一般就是mipi接口。

2026-02-02 17:19:13 958

原创 Linux camera驱动开发(点亮新camera sensor)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        这里的sensor,大部分情况下都是指mipi接口的camera sensor。如果说mcu平台,还有很多的dvp sensor,那么soc平台下面则主要都是mipi接口的sensor。另外和mcu平台不同,很多的soc平台都有isp,所以哪怕sensor本身不带有isp功能,这都没有关系的。这也是soc平台和mcu平台很大的一个区别。今天就谈一谈如何点亮一个新的sensor。

2026-02-01 16:24:44 545

原创 Linux camera驱动开发(camera驱动代码的位置)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        既然是camera驱动,而且是linux系统,那么就要了解下如何找到和学习这些驱动代码。本身不同soc的sdk,最好从芯片代理商那里要。实在没有,就只能通过购买开发板的方式去进行处理了。通常情况下,这些代码是可以通过商家拿到的。只有少部分sdk,只能通过to b的方式获得,这种就只能走公对公了。

2026-01-29 22:22:42 516

原创 Linux camera驱动开发(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        我们要想看到这个世界,camera是最直接的方法。早前靠胶片相机、数码相机、单反,现在有了手机、运动相机之后,几乎可以很容易地通过camera感受到这个世界。另外,camera应用的地方也很多,比如工业、消费、汽车、医疗等等,它出现的地方远比大家想的要多得多。但是怎么驱动camera、怎么开发camera,很多人不了解,特别是在linux环境下面怎么开发camera。

2026-01-27 10:59:57 770

原创 Android开发(被忽视的camera-screen-算法应用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        对于android来说,有一类应用其实被忽视掉了。那就是camera-screen-算法类的应用。这类应用有几个特点,一来sensor需要自己适配,二来屏幕大小各异,三来算法需要自己来进行进行配置。只要做好这三个部分,还是有很大市场的。

2026-01-24 09:24:48 430

原创 Android开发(题外话之虚拟机卡顿)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        我们平常开发嵌入式的时候,一种是keil居多,还有一种就是linux开发、或者是android开发。前者的话,基本安装一下keil软件即可,烧入和调试都是可以的。后者就是需要安装linux系统。目前用的比较多的linux系统,主要还是ubuntu。一来安装比较方便,二来下载软件比较方便。但是最近发现,virtualbox安装ubuntu的时候,如果是比较新的ubuntu,会比较卡顿。

2026-01-21 20:38:43 415

原创 Android开发(个人开发的几个方向)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        未来怎么样不好说,但是就当前而言,android开发还是不错的一个选择。只不过和之前相比较,android app开发的门槛越来越低。毕竟如果是简单的界面开发,或者是功能不复杂的纯软开发,用android studio做一个app还是不算太复杂的一个事情。但是仅仅会android开发,其实是一件危险的事情,尤其是只做增删改查的一些操作。那么除了一般的android app开发,还可以

2026-01-19 11:53:51 383

原创 Android开发(开发板的三种操作系统)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        对51,或者是stm32来说,一般谈不上什么操作系统,基本代码都是while(1)+中断的方式完成的。只有soc,它的cpu的频率足够快,soc的多媒体处理资源足够多,才有操作系统的支持。当前,对于一般的开发板来说,主机厂都会提供三种操作系统供选择,一种是linux系统,一种是ubuntu系统、或者是debian系统,还有一种就是android系统开发。

2026-01-18 08:51:00 587

原创 Android开发(总结)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        目前市面关于嵌入式开发一般是分成这么几种,有51单片机开发,有mcu开发,还有linux开发,最后一种就是android开发。如果是android开发,又可以分成app开发和驱动开发两种。对于小公司来说,干的最多的就是app开发,只有在额外添加硬件的时候,才会涉及到驱动开发。

2026-01-17 22:12:07 454

原创 外壳3D结构设计(学习的方法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        作为嵌入式开发的同学来说,最好能够自己学会做嵌入式的外壳。很多时候,我们看到的是一个外壳。但是对于用户来说,加上外壳的电路板,就是一个完整的产品。如果加上广告纸、使用手册、logo、合理的按键,几乎和产品无异。当然,大家都知道3d打印的好处,但怎么学习,很多人却并不了解。这里讲解一下,如何学3d设计。

2026-01-10 07:58:55 422

原创 外壳3D结构设计(学习Freecad)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        市面上3d软件很多,几乎所有软件都可以转成stl、obj格式。比如大家熟知的solidworks,一般用于机械设计;还有maya,用于游戏开发;以及fusion 360,这个用于3d打印比较多。这里面,既然大多数人都用fusion 360,为什么我们不用fusion 360呢?

2025-12-25 18:25:58 1057

原创 外壳3D结构设计(介绍)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         对于嵌入式开发的同学来说,平常对硬件和软件应该打交道比较多,对结构方面的知识可能不是很多。事实上,结构设计也是非常重要的一个环节。很多时候,大家都把结构设计等于3d设计,这么说虽然没什么毛病,但是不太严谨。因为,3d设计是一个通用范畴,比如游戏、工业设计、机械设计、美工等等,都会用到3d设计。所以,用3d设计做什么,其实更为重要。我们自己用3d软件,就是做外壳设计,相对要简单很多。

2025-12-25 07:55:49 353

原创 LVGL应用和部署(中文输入法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        lvgl由于其开源性和开放性,现在无论是mcu还是soc领域,用的是越来越多。不管是按键,还是触摸屏,都可以用来进行人机交互。只不过交互的时候,暂时只能是英文输入,如果是中文输入的话,就要想办法了。一次偶然的机会发现,在最新的lvgl 9.3版本上面已经集成了中文输入,正好可以试试。

2025-12-19 08:22:11 615

原创 LVGL应用和部署(几种人机交互的方式)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        只要是嵌入式设备,不管是stm32也好,或者是linux设备,总少不了人机交互。如果产品本身还是在开发的阶段,那么基本上采用串口开发的方式,就可以实现人机交互了。但是等到后期慢慢往产品方向转的时候,这个时候就不能采用串口通信了。毕竟,大部分客户都没有这方面的知识,只能想想其他的办法了。

2025-12-17 08:18:49 482

原创 LVGL应用和部署(多线程异步通信)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        在开发界面的时候,有一种情况是肯定会发生的,那就是异步通信。大家都知道,lvgl本身运行是独立运行的一个thread,但是linux下面一个程序不大可能只有一个thread。在这种情况下,其他线程如何给lvgl发消息,更新里面的状态呢?

2025-12-16 07:06:28 520

原创 LVGL应用和部署(快速开发LVGL的方法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        目前位置,对于轻量的图形界面来说,lvgl几乎是最好的开发方式。一方面,lvgl非常轻量,启动速度很快,这一点比linux qt要好不少。另外一方面,和qt相比较,lvgl没有版权方面的风险,所以在目前出海的大背景下,lvgl开发的产品,涉及到出口,几乎不存在限制条件。最后,就是lvgl适配于多平台,不仅仅是linux,哪怕是mcu,即stm32之类的mcu,也可以拿lvgl来进行界

2025-12-16 06:41:43 592

原创 ISP基本原理和实现(AF引申出来的电机控制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        图像处理中的3a算法,是大家都比较熟悉的部分。但是对于入门的camera来说,或者是大部分相机而言,af都是不需要调节的。所谓的af,那就是自动对焦,那就是修正镜头和camera sensor之间的距离。其他awb和ae,可以通过算法调整,也可以通过外部光源补充来解决,只有这个af麻烦一点,涉及到电机控制。正好借着这个topic,了解下电机控制。

2025-12-14 21:17:33 388

原创 ISP基本原理和实现(题外话之mongoose)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        最近正好有一个需求,需要在arm linux板子上起一个web server。本着轻巧的原则,在github上面找了一下,发现了mongoose这个软件。软件本身很小,就一个h文件,一个头文件,完全可以拿过来处理一下。如果只是配置类的处理,或者是stm32 mcu之类的软件,那么也可以使用这类库。

2025-12-13 16:29:58 422

原创 ISP基本原理和实现(AI-ISP的引入)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        isp本身不是一个新方向,而且isp存在的时间也不短了。特别是2000年之后,随着手机开始携带camera之后,camera本身更是有了一个长足的发展。camera是越做越大、像素越来越高、个数也越来越多,这些都是看得到的进步和提高。但是camera放在手机上也有很多的局限,比如镜头不能太大、sensor不能占据空间太多、夜景模式比较差等等,这些都是camera处理的一些痛点。比如

2025-12-06 07:48:47 479

原创 ISP基本原理和实现(ISP的输入和输出)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        isp只是soc的一个部分。也就是说,最多isp只是soc一个重要的ip。因为除了isp之外,soc上面还有很多重要的ip,比如gpu,比如h264、h265编解码、比如音频编解码,再比如pcie、usb3、npu、cpu等等,这些部分也很重要。而且,这还没有包括软件开发的部分。所以,我们做好isp学习和调试的同时,有必要了解isp的输入、输出的部分是什么。

2025-12-05 08:42:54 583

原创 ISP基本原理和实现(添加自己的算法及测试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        我们学习Infinite-ISP开源代码之外,除了想了解一下isp的基本原理,把代码编译出来之外,其实还可以自己编写一下算法。这样不仅对isp有一个更加深刻的认识,还能在实际项目中为自己所用。其实在实际产品中,固定的isp未必能满足客户的所有要求,那么此时用fpga对isp做增强处理,就是意料之中的事情了。在用fpga处理之前,就可以用python做一下简单的设计和预研即可。

2025-12-04 06:11:48 317

原创 ISP基本原理和实现(算法举例分析)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        isp本身就是一个流水线,流水线里面有很多的算法。每一个算法的输出,就是下一个算法的输入。这也是图像处理算法的一个基本特征。也正是由于这个特征,使得图像算法特别适合用硬件加速的形式来实现。今天就来简单分析下,开源程序Infinite-ISP里面,算法是怎么写的,

2025-12-04 05:53:21 717

原创 ISP基本原理和实现(isp中的反馈机制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        整个isp的流水线还是比较好懂的。它的输入是sensor的bayer图像,这是由sensor基本结构决定的。它的输出是yuv,或者是rgb图像,也就是最终我们要想的结果。整个isp当中有很多的算法,每一个算法的输入,都是前面一个算法的输出,全部算法是采用pipeline机制完成的。也就是说,所有的算法都是并发执行的,不存在一个算法等另外一个算法的情形。但除此之外,isp还有一个特殊的

2025-12-03 08:27:12 930

原创 ISP基本原理和实现(代码流程)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        对于稍微大一点的soc公司来说,isp、h264和h265编解码、npu、pcie、usb这些重要的ip接口都是自己完成的。当然,如果不考虑成本的话,外购ip也是可以的。就拿isp来说,要做好它,首先算法团队需要设计好算法,这一步通常是用python、matlab实现,部分也会用c/c++实现。等到算法团队ok,数字前端团队就会拿过来修改成rtl代码,综合出来自己简单测试下。数字这边

2025-12-03 07:32:17 1119

原创 ISP基本原理和实现(从开源代码开始学习)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        很多对图像不太了解的朋友,都以为图像从camera出来之后就可以直接用。其实不是这样的,现在一幅好的图像,大部分都是由镜头、sensor和isp三部分组成的。镜头负责光学部分,sensor负责光转电,而把图像变成人眼比较舒服的图像,则需要isp的参与。

2025-12-02 21:16:06 1137

原创 自己动手写深度学习框架(题外话之硬件转接板)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        训练模型是一方面,使用模型是另外一方面。而且很多时候,模型的使用最终都是部署在嵌入式开发板子上面。这种情况下,就需要嵌入式开发板支持我们运行的模型。此时,去挑选开发板的时候,就会发现大部分时候,功能和接口都是ok的,但是小部分是不ok的。这些不适配的情形包括了camera sensor不合适、mipi lcd对不上、外接接口不好用等等。那么怎么解决这些问题呢,那就是转板。

2025-11-30 20:26:56 395

原创 自己动手写深度学习框架(关于训练算力的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        对于个人,或者是小企业开发来说,算力肯定没有大公司那么富裕。那么这个时候,就会有一个问题,算力从哪里来,怎么提高算力。如果提高不了算力,那么应该怎么降低算力要求。这都是个人开发者或者小公司开发人员应该考虑的事情。

2025-11-24 19:35:31 592

原创 自己动手写深度学习框架(图像预处理和后处理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        深度学习中,处理图像的方法一般就是卷积神经网络。网络本身+模型,其实就是就相当于一个黑盒函数,我们输入图像,就可以拿到一定的结果。但是不管是输入的图像,还是拿到的结果,一般都是没有办法直接使用的,有必要做一些预处理和后处理的工作。只有这样做,才是一个完整的产品解决方案。

2025-11-23 07:44:51 526

原创 自己动手写深度学习框架(用labelImg标记样本)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        学习深度学习之前,以为自己大部分时间都是在做算法。但是做了之后,才发现自己大部分时间都在清洗数据。和算法相比较,数据本身的价值,可能要比算法还要大。而且除了数据之外,嵌入式部署也是非常重要的,反而是算法,大部分时间就是微调,很少会对网络做大的改动。

2025-11-22 19:54:17 855

原创 自己动手写深度学习框架(npu硬件加速)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        深度学习的model训练完之后,一般需要部署到pc或者是嵌入式开发板上面。这个时候,如果部署的环境是arm开发板,本身又没有加速ip的话,那就只能用ncnn来解决。反之,如果有npu的帮助,也就是硬件加速来帮忙,这样会好很多。npu硬件加速的原理,其实就是把常用的算子做一个加速而已。因为很多深度学习的网络特别深,cnn类的算子又特别多,所以用npu加速是非常好的选择。

2025-11-22 08:23:57 1002

原创 自己动手写深度学习框架(最终的ncnn部署和测试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        既然前面已经做好了pytorch到onnx,onnx到ncnn的转换,那么接下来就是用ncnn来执行这些model和参数了。有的人也许会问,既然pytorch都训练好model了,为什么不直接用pytorch在板子上跑呢?那是因为训练的时候,一般都是用nvidia显卡跑的,资源非常富裕。但是在嵌入式板子上,需要用cpu、或者npu来优化处理,整体资源要少得多。所以,model本身也要

2025-11-21 23:06:19 610

原创 自己动手写深度学习框架(pytorch转ncnn)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        pytorch本身是我们进行ai训练的一个框架,但是训练得到的model最终是要部署到嵌入式板子上面的。这中间就有两种办法,一种是pytorch直接生成onnx文件,然后用ncnn自带的onnx2ncnn将onnx转成我们想要的文件。另外一种方法,就是先生成pt文件,接着用pnnx工具把pt生成我们想要的ncnn文件。

2025-11-20 20:30:37 775

原创 自己动手写深度学习框架(pytorch训练第一个网络)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        大多数深度学习的训练框架其实差异不大,都支持不同的激励函数,支持不同的layer定义,支持cuda训练,也支持自动求导、反向传播,更支持参数保存和onnx转换。不管怎么说,用公开的框架训练深度学习模型,要比自己写框架简单很多。下面,就看一下,怎么用pytorch训练第一个模型。

2025-11-20 08:24:42 568 1

原创 自己动手写深度学习框架(从网络训练到部署)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】        关于ai,关于深度学习,各方面的资料都比较多。比如说怎么标记,怎么训练,怎么调优,零零散散的资料不少。但是这些技术,或者框架之间是什么关系,怎么从训练到最终部署,这方面谈的不多。今天正好可以花点时间聊一下。如果要自己训练数据,到最终嵌入式部署,要做些什么。

2025-11-18 22:35:12 626

rootfs.tar

rootfs

2023-05-25

arm9兼容软核代码

arm9兼容软核代码

2020-12-24

png图片读取、保存代码

这是一个完整的png图片读取项目,包括了pnglib、zlib和win32工程,大家可以单步调试验证png格式的基本功能。

2012-07-08

glibc1.09的源代码内容

这里是glibc早期的版本,对大家学习libc非常有帮助,希望大家积极下载、

2011-05-21

exceptional C++

这是关于c++非常好的一本书,相信对大家十分有用!

2009-05-07

空空如也

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

TA关注的人

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