自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用 ftrace 进行内核跟踪

ftrace 是 Linux 内核中强大的跟踪和调试工具,能够提供详细的函数调用和执行时间信息,帮助开发人员进行性能分析和故障排除。通过本文的介绍,希望你能熟练掌握 ftrace 的基本使用方法,并在实际开发中应用它来提升代码质量和系统性能。

2024-06-13 11:24:34 461

原创 Linux开发板 FTP 服务器移植与搭建

VSFTPD(Very Secure FTP Daemon)是一个安全、稳定且快速的FTP服务器软件,广泛用于Unix和Linux操作系统。它以其轻量级、高效和易于配置而受到赞誉。VSFTPD不仅支持标准的FTP命令和操作,还提供了额外的安全特性,如匿名FTP访问、上传/下载速度限制、用户隔离以及通过SSL/TLS加密传输。此外,VSFTPD对资源的消耗较少,适合在需要高性能和安全性的服务器上部署。由于其安全性和灵活性,VSFTPD是许多系统管理员和网络管理员的首选FTP服务器解决方案之一。

2024-05-01 23:57:39 1249 1

原创 实时监控RTSP视频流并通过YOLOv5-seg进行智能分析处理

脚本还包括后台处理、进程PID管理、文件系统事件监控以及资源清理功能,确保在接收到中断信号时能够妥善终止进程并清理文件,有效管理存储空间。在完成RTSP推流之后,尝试通过开发板接收的视频流数据进行目标检测,编写了一个shell脚本实现该功能,关于视频推流和rknn模型的部署请看之前的内容或者参考官方的文档。由于实例分割模型的FPS较低,所以有较高的延迟,后续可以使用目标检测模型进行测试,效果应该会更好。该脚本实现了一个自动化的视频监控流程,通过。

2024-05-01 17:48:56 1028

原创 Git推送本地项目到gitee远程仓库

Git 是一个功能强大的分布式版本控制系统,它允许多人协作开发项目,同时有效管理代码的历史版本。开发者可以克隆一个公共仓库到本地,进行更改后将更新推送回服务器,或从服务器拉取他人更改,实现代码的同步和版本控制。此外,Git 支持在本地搭建服务器或使用如 GitHub 这样的在线平台进行远程协作。工作区(Workspace):这是开发者进行代码编写和修改的地方,通常是仓库代码的最新状态。缓存区(Index/Stage Area):也称为暂存区,位于 .git 目录下。

2024-04-30 22:14:55 711

原创 使用RTSP将笔记本摄像头的视频流推到开发板

RTSP(实时流传输协议)是一种网络协议,用于控制音视频数据的实时流传输,常用于远程监控和视频会议。

2024-04-30 21:14:48 2256 2

原创 在RK3588上部署PPYOLOE模型

是基于PP-YOLOv2的卓越的单阶段Anchor-free模型, 超越了多种流行的YOLO模型。PP-YOLOE有一系列的模型,即s/m/l/x,可以通过width multiplier和depth multiplier配置。

2024-04-30 17:58:16 1175 1

原创 Linux下深度学习虚拟环境的搭建与模型训练

YOLOv4在Darknet的源代码可以在GitHub上找到,下载地址是。

2024-04-28 14:14:21 756 1

原创 RKNN Toolkit2 工具的使用

RKNN Toolkit2 是由瑞芯微电子 (Rockchip) 开发的一套用于深度学习模型优化和推理的工具。它主要面向在瑞芯微SoC上进行AI应用开发,但也可以用于PC平台进行模型的转换、量化、推理等操作。它支持将多种深度学习框架的模型(如Caffe, TensorFlow, PyTorch等)转换为RKNN格式。

2024-04-28 12:00:35 2175 1

原创 交叉编译器gcc-linaro-7.5.0快速安装

如果显示版本,则安装成功。

2024-04-25 21:47:30 1562

原创 在Milk-v Duo上部署YOLOV8模型

从后续测试结果来说,将输出层量化为 int8,可以减少部分 ion,并提高推理速度,并且模型检测精度基本没有下降,推荐添加–quant_output 参数。在上述步骤运行成功之后,我们就获得了我们量化好的yolov8n_cv180x_int8_sym.cvimodel模型。通过nfs或者ssh的方式将cvitek_tdl_sdk(可以压缩一下,可能在传输过程中会有文件丢失)、yolov8n_cv180x_int8_sym.cvimodel以及一张测试图像传输到开发板的/mnt目录下。

2024-04-23 17:21:18 2356 2

原创 编译Milkv-duo固件

Milk-V Duo 是一款基于 CV1800B 芯片的超紧凑型嵌入式开发平台。它可以运行Linux和RTOS,为专业人士、工业ODM、AIoT爱好者、DIY爱好者和创作者提供可靠、低成本、高性能的平台。使用FileZilla将其传输到Windows中,然后将其压缩为.zip。使用balenaEtcher工具将其烧录到sd卡,将sd插到板子上就可以看到其可以顺利启动。在duo-buildroot-sdk/install/soc_cv1800b_milkv_duo_sd下会生成images镜像文件。

2024-04-23 17:07:45 584

原创 在RISC-V64架构的CV1811C开发板上应用perf工具进行多线程程序性能分析及火焰图调试

SDK目录结构。

2024-04-21 21:49:47 2534

原创 实现I.MX6ULL开发板与Windows和Ubuntu系统之间的通信

1. 将I.MX6ULL开发板与Windows使用网线进行连接,启动开发板,启动网口,设置IP地址和网关。3. 打开VMware,启动ubuntu,配置网络,设置固定IP。5. 打开VMware的虚拟机设置,选择网络连接的模式。4. 打开VMware的虚拟网络编辑器,设置桥接模式。2. 在Windows中找到网络连接,配置以太网,配置完成后使用ifconfig命令查看网络配置。6. 使用ping命令,看互相能不能ping通。因此,我们需要使用桥接模式实现三者之间的通讯。

2024-04-18 15:17:31 310 1

原创 搭建i.MX6ULL开发板的GDB调试环境以及调试

在嵌入式系统开发中,由于硬件性能限制,通常使用PC端的GDB工具配合开发板上的gdbserver进行远程调试。首先需要安装交叉编译器和texinfo,然后编译并安装GDB,接着编译并部署gdbserver到嵌入式设备。之后,编写测试程序并交叉编译为可执行文件,发送至开发板。在PC端启动GDB,连接到运行gdbserver的开发板,加载可执行文件并设置断点,最后通过常用GDB命令进行程序调试。

2024-04-18 14:25:33 735 1

原创 在 i.MX6ULL 开发板上通过 NFS 与 Windows 11 进行文件共享和传输

接着,要配置Windows网口的地址,如果不确定是哪一个网口,可以插拔一下网线。注意,要保证IP在一个网段,且网关要一致,否则无法通讯。使用以下命令就可以挂载Windows上的文件夹了,去到开发板的/mnt/nfs文件夹下看是否已经挂载。配置好后使用ifconfig查看网络信息,使用ping命令检查互相是否能够ping通。参考下面的图进行配置,在电脑上创建一个nfs的文件夹用来存放需要挂载的文件。

2024-04-15 10:53:27 239 1

原创 Linux下对SD卡进行格式化

在Linux下对SD卡进行格式化,你可以使用命令行工具,如`fdisk`和`mkfs`。

2024-03-26 15:24:03 2081

原创 安装cmake=3.16.5

命令来验证CMake是否已正确安装,并且版本是否为3.16.5。(对于八核处理器)来加快编译速度。如果是四核处理器,可以使用。命令开始编译,如果您的计算机有多个核心,可以使用。如果您不确定或者不想修改,直接使用。命令将CMake安装到系统中。安装完成后,您可以通过输入。

2024-03-26 11:10:36 545

原创 在Milk-V Duo上部署MobileNetV2

Milk-V Duo 是一款基于CV1800B芯片的RISC-V架构开发板,它可以运行 Linux 和 RTOS,适用于嵌入式系统和物联网设备的开发。其中,CV1800B 是一款高性能、低功耗芯片,适用于住宅消费监控 IP 摄像机、家庭智能等众多产品。它提供丰富的教程和资料,支持多种操作系统,具有活跃的社区支持,并且接口丰富,易于上手。该开发板可用于教育和研究,尤其在计算机体系结构、嵌入式系统设计、硬件原型制作等方面。

2024-03-25 14:12:43 1513 1

原创 Linux手册页各个部分的详细信息

2024-01-21 05:09:14 388

原创 I.MX6ULL的u-boot、zImage、设备树、rootf烧写建议

mmc write 80800000 2 2EE (以实际大小为准) //烧写 u-boot.imx 到 SD 中。tftp 80800000 u-boot.imx //下载 u-boot.imx 到 DRAM。u-boot重新烧写并启动后要配置基本的网络相关的环境变量,以下面为例,根据自己实际情况配置。建议将u-boot烧写至SD卡,当然也可以烧写至EMMC,前者更方便后面的调试。mmc partconf 1 1 0 0 //分区配置,EMMC 需要这一步!

2024-01-20 05:03:05 720

原创 U-boot启动流程和bootz 启动 Linux 内核过程

boot的启动大致可分为两个阶段:stage1:使用汇编完成CPU的初始化stage2:通过C语言分board_init_f 和 board_init_r 两个阶段完成外设的初始化首先,将U-Boot的二进制代码从Flash存储器中读取出来,加载到DDR的一个预设地址(通常是RAM的低地址区域)。然后,找到链接脚本(u-boot.lds)中制定的入口点,并开始执行u-boot的初始化代码。在执行初始化代码的过程中,会对U-boot代码中的变量、函数、环境变量等进行重定位(),。

2024-01-16 01:11:52 1401 1

原创 Linux搭建tftp出现“Job for tftpd-hpa.service failed because the control process exited with error code..“

启动 tftp 服务时,出现“Job for tftpd-hpa.service failed because the control process exited with error code. See "systemctl status tftpd-hpa.service" and "journalctl -xe" for details.”的错误。

2024-01-08 19:58:50 1944 2

原创 数组的地址

1. sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小单位是字节。2. &数组名-数组明表示整个数组-取出的是整个数组的地址。大多是情况下数组名是数组首元素的地址,但是有两个例外。

2023-12-31 00:30:04 354

原创 IIC、SPI、CAN、UART等概念

SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟,提供收发双方的时间基准)、CS(片选 chip select),SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;缺点是不能保证数据的可靠性);I²C的正确读法为“I平方C”也称为I2C(Inter-IC Communication),是一种串行、半双工通信协议,主要用于近距离、低速对的芯片之间的通讯,用于连接多个集成电路(IC)或器件,通常用于连接传感器、显示屏、存储器等。

2023-12-29 18:00:28 2041 1

原创 嵌入式开发学习路线#思维导图

2023-12-26 19:10:09 593 1

原创 C#实现冒泡排序

【代码】C#实现冒泡排序。

2023-12-26 00:42:50 404 1

原创 Linux远程传输文件时出现Permission denied解决办法

1.打开/etc/ssh/sshd_config 配置文件,将第52行的代码取消注释。-R 是指级联应用到目录里的所有子目录和文件;777 是所有用户都拥有最高权限。r为可读权限,w为可写权限,x为可执行权限。ls -l 文件名称。

2023-12-26 00:09:40 2439 1

原创 在Linux系统中执行命令后出现dpkg: error: dpkg frontend is locked by another process问题的解决办法

在在Linux系统中执行命令后出现一个异常提示。原因是包管理器没有正确关闭。然后重新输入命令问题就解决啦!

2023-12-26 00:04:09 1507 1

原创 嵌入式开发学习路线

选择深入研究特定领域,如嵌入式Linux开发、物联网(IoT)系统开发、嵌入式图像处理等,根据个人兴趣和需求选择相关的学习路线。学习实时操作系统(RTOS)的概念、特性和功能,如FreeRTOS、RTOS、VxWorks等。了解各种通信协议,如CAN、Ethernet、USB、Bluetooth、Wi-Fi等。学习嵌入式系统的体系结构和组成,包括处理器、存储器、总线、输入输出等组件。学习嵌入式系统开发工具,包括编译器、调试器、仿真器、IDE等。学习C语言基础,包括数据类型、变量、运算符、控制语句等。

2023-12-17 01:26:01 1310 1

原创 C语言中关于return语句的理解

例如,如果函数声明的返回类型是 int,那么 expression 必须是一个 int 类型的表达式。如果一个函数不返回任何值,可以使用 return 语句不带表达式,或者干脆省略 return 语句。在上面的示例中,add 函数接受两个整数参数 a 和 b,计算它们的和,并使用 return 语句返回结果。返回的值是一个 int 类型的整数。总之,在C语言中,return 语句用于从函数中返回一个值,而返回的值的类型必须与函数的声明相匹配。在函数中,一旦执行到 return 语句,函数的执行将立即停止。

2023-12-17 00:01:06 497 1

原创 C语言中的数据类型

在C语言中,不同数据类型所占用的内存大小可以根据编译器和运行平台(如32位或64位系统)而有所不同。对于构造类型(如数组、结构体、共用体和枚举)的大小,它取决于构成这些类型的数据类型及其数量。例如,一个由10个整型(结构体的大小取决于其内部成员的类型和数量,以及可能的内存对齐。为了获得特定平台上的确切大小,您可以在您的C编译环境中使用。C语言中包含多种数据类型,它们可以大致分为以下几类。)组成的数组在32位系统中可能占用40字节(假设。类型在您的系统中占用的字节数。

2023-12-16 15:56:16 370 1

原创 安装Ubuntu虚拟机,无法ping虚拟机,VSCode无法连接虚拟机,VMWare没有虚拟网络适配器

完成以上步骤之后就可以重装VMWare了,安装成功后就会出现vmware虚拟机网络配置了。2. 使用文件搜索工具Everything搜索VMWare,删除所有的文件。win+R输入cmd,ping 虚拟机IP地址就会正常了。3. 使用CCleaner删除无效的注册表。1. 卸载VMWare。

2023-12-16 00:47:35 693 2

空空如也

空空如也

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

TA关注的人

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