自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 资源 (51)
  • 收藏
  • 关注

原创 rk3588下yolov5火焰识别h264输出log

log。

2024-03-10 10:16:12 298

原创 rk3588下yolov5火焰识别图片输出log

post process config: box_conf_threshold = 0.25, nms_threshold = 0.45Loading mode…sdk version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22) driver version: 0.9.3model input num: 1, output num: 3index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=122

2024-03-10 10:05:06 409

原创 【KPDK】概述

DPDK的主要目标是为数据平面应用程序中的快速数据包处理提供一个简单、完整的框架。用户可以使用代码来理解所采用的一些技术,构建原型或添加自己的协议栈。可提供使用DPDK的替代生态系统选项。DPDK框架通过创建环境抽象层(EAL)为特定环境创建一组库,EAL可能特定于英特尔体系结构(32位或64位)模式、Linux*用户空间编译器或特定平台。这些环境是通过使用介子文件和配置文件创建的。一旦创建了EAL库,用户就可以链接到该库来创建自己的应用程序。

2023-12-03 10:01:34 1025

原创 【KPDK】Log Library

DPDK日志库为其他DPDK库和驱动程序提供日志记录功能。默认情况下,在Linux应用程序中,日志既发送到syslog,也发送到控制台。在FreeBSD和Windows应用程序上,日志只发送到控制台。但是,用户可以覆盖日志功能以使用不同的日志记录机制.

2023-12-03 09:39:58 443

原创 【DPDK】Trace Library

当跟踪缓冲区已满时,新的跟踪事件会覆盖跟踪缓冲区中现有的捕获事件。事件记录模式是跟踪缓冲区的一个属性。当跟踪缓冲区已满时,将丢弃新的跟踪事件。使用tracecompass GUI工具。使用babeltrace命令行工具。查看和分析记录的事件。

2023-12-02 10:36:11 1110

原创 汇编对照看

https://godbolt.org/

2023-05-19 07:19:17 80

原创 systemd-modules-load.service

systemd-modules-load.service

2022-09-20 22:53:58 397

原创 systemd-analyze blame

systemd-analyze blame

2022-09-19 21:31:37 625

原创 ds5 debug arm64 模拟器

ds5 debug arm64 模拟器0)编译版本依赖install autoconf automake libtool1)工具加载符号表el3断点在el2入口2)b el2:0x800800003)加载符号表el2add-symbol-file /home/xzf/share/runninglinuxkernel_4.0-rlk_basic/vmlinux -0xFFFF7FFF80000000//0x80080000-0xFFFF80000008000info file4)加载符

2022-04-23 11:35:37 229

原创 arm64_device_init

这个函数将设备树上的资源填充到平台设备里面,同时创建平台设备,smab 总线。 of_platform_populate:for_each_child_of_node(root, child) { rc = of_platform_bus_create(child, matches, lookup, parent, true); if (rc)

2017-11-21 23:04:10 471

原创 amba 设备,总线

基础介绍 ARM官网的介绍:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0224b/index.html 高级微控制器总线结构Advanced Microcontroller Bus Architecture(AMBA)定义了高性能嵌入式微控制器的通信标准。可以将RISC处理器集成在其他IP芯核和外设中,它是有效连

2017-11-20 22:48:19 826

原创 pl011_init

static int __init pl011_init(void){ int ret; printk(KERN_INFO "Serial: AMBA PL011 UART driver\n"); ret = uart_register_driver(&amba_reg); if (ret == 0) { ret = amba_driver_regis

2017-11-20 22:12:44 1297

转载 early_irq_init

设置irq_default_affinity 值,可以在proc 下看到。 动态分配中断描述符实例,并将其加到radix 树中去。 树的根:irq_desc_tree在用数组来分配中断描述符的,中断描述符的数组为: struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = { [0 … NR_IRQS-1] = {

2017-11-16 23:33:59 856

转载 Linux时间子系统的软件架构(一)

一.软件架构 但是随着技术发展,出现了下面两种新的需求: (1)嵌入式设备需要较好的电源管理策略。传统的linux会有一个周期性的时钟,即便是系统无事可做的时候也要醒来,这样导致系统不断的从低功耗(idle)状态进入高功耗的状态。这样的设计不符合电源管理的需求。 (2)多媒体的应用程序需要非常精确的timer,例如为了避免视频的跳帧、音频回放中的跳动,这些需要系统提供足够精度的timer 和

2017-11-15 21:24:19 1315

转载 linux clk驱动框架

clk common framework(ccf)子系统,用来完成对clock的统一管理. 如今,可运行Linux的主流处理器平台,都有非常复杂的clock tree,我们随便拿一个处理器的spec,查看clock相关的章节,一定会有一个非常庞大和复杂的树状图,这个图由clock相关的器件,以及这些器件输出的clock组成。下图是一个示例: clock相关的器件包括:用于产生clock的Os

2017-11-14 23:12:56 5204

转载 内核proc文件系统简介

/proc文件系统是一个特殊的由内核创建的文件系统,她仅存在于内存之中而不在外存(硬盘、flash)上。内核用她来向用户空间进程输出消息,可以说是内核向用户空间打开的一扇窗户。 最初开发/proc文件系统是为提供一种内核及其模块向进程 (process) 发送信息的机制 (这就是proc名字的由来)。这个虚拟文件系统让你可以和内核内部数据结构进行交互,获取对于进程的有用信息,并可在运行

2017-11-12 17:10:22 1864

原创 proc_root_init

1.self_inum:是一个唯一的proc inode number. 虽然它是从proc 文件系统中分配的inode number, 但仅用在nsfs中, 它被用做nsfs的inode number, 只需要保证这个number在nsfs中唯一就可以了. 2.__xlate_proc_name:This function parses a name such as “tty/driver/se

2017-11-12 16:56:03 1118

原创 vfs_caches_init

调用层次 start_kernel() |____vfs_caches_init() |____dcache_init() |____inode_init() |____files_init()

2017-11-12 12:22:35 556

转载 Linux内核中namespace之PID namespace

PID框架的设计 一个框架的设计会考虑很多因素,相信分析过Linux内核的读者来说会发现,内核的大量数据结构被哈希表和链表链接起来,最最主要的目的就是在于查找。可想而知一个好的框架,应该要考虑到检索速度,还有考虑功能的划分。那么在PID框架中,需要考虑以下几个因素.如何通过task_struct快速找到对应的pid如何通过pid快速找到对应的task_struct如何快速的分配一个唯一的pid这些

2017-11-12 11:42:07 1210

原创 初始化中的kmem_cache 实例

1.radix_tree_node_cachep:radix_tree_init() 2.obj_cache:debug_objects_mem_init()不一定打开 3.object_cache,scan_area_cache:kmemleak_init()不一定打开 4.policy_cache,sn_cache:numa_policy_init()不一定打开 5.init_pid_n

2017-11-12 10:19:17 693

转载 CONFIG_BLK_DEV_INITRD

initramfs概述 initramfs与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。但是目前initramfs只支持cpio包格式,它会被populate_rootfs->unpack_to_rootfs(&__initramfs_start, &__initramfs_end - &__initramfs_start, 0)函数(解压缩、)解析、安装。initr

2017-11-08 22:39:34 4336

原创 lockdep_info

打印锁依赖的信息 可以参考:Linux 死锁检测模块 Lockdep 简介 http://kernel.meizu.com/linux-dead-lock-detect-lockdep.html 了解lockdep locking_selftest:死锁检测

2017-11-08 22:37:12 450

原创 time_init

主要是调用clocksource_of_init 函数来实现定时器初始化 这个函数在clksrc-of.c中,通过在__clksrc_of_table 中匹配of_device_id和device_node。 最终执行of_device_id 中的data指向的函数,实现timer 的初始化 执行的查找函数 of_find_matching_node_and_match—–>__of_mat

2017-11-03 22:18:27 1350

原创 softirq_init

硬件中断需要做尽可能少的事情,多时间要求不严的事情,交给中断下半部分去做。有三种不同形式的下半部实现机制:软中断、tasklet、工作队列。 软中断 内核定义了下面的软中断类型,用户尽量不要自己去创建软中断类型 enum { HI_SOFTIRQ=0, TIMER_SOFTIRQ, NET_TX_SOFTIRQ, NET_RX_SOFTIRQ,

2017-11-03 21:35:24 409

原创 build_all_zonelists

关键函数 1.__build_all_zonelists() 2.nr_free_pagecache_pages()__build_all_zonelists(void *data): 对于UMA系统这个函数执行的子函数主要有以下几个:(CONFIG_HAVE_MEMORYLESS_NODES 没有配置) for_each_online_node(nid) {//循环找到系统的所有节点

2017-10-26 22:40:32 2777

原创 从物理内存角度描述内存之间的关系(bootmem_init)

1.内存条(bank):由内存插槽组成 2.节点(node):从一个cpu 访问速度相同的内存的集合,包含多个bank,使用pg_data_t 表示,称为节点描述符 3.uma:cpu 对所以内存访问的速度一致 numa:cpu 对所以内存访问的速度不一致 4.zone:节点中具有相同内存属性的区域,有zone 结构管理 一般分为dma,normal,hight 三个区域

2017-10-25 22:35:08 733

原创 percpu_init_late

void __init percpu_init_late(void) { struct pcpu_chunk *target_chunks[] = { pcpu_first_chunk, pcpu_reserved_chunk, NULL }; struct pcpu_chunk *chunk; unsigned long flags; i

2017-10-25 22:16:24 278

原创 kmem_cache_init

新版本的改动: kmem_cache_boot—->cache_cache init_kmem_cache_node—->initkmem_list3 slab_caches———>cache_chain size_index——–>malloc_sizes 主要函数: create_boot_cache(create_kmalloc_cache 实际也是调用这个函数)

2017-10-23 23:05:52 485

原创 free_low_memory_core_early

static unsigned long __init free_low_memory_core_early(void) { unsigned long count = 0; phys_addr_t start, end, size; u64 i;for_each_free_mem_range(i, MAX_NUMNODES, &start, &end, NULL)

2017-10-23 22:41:44 428

原创 alloc_large_system_hash

void *__init alloc_large_system_hash(const char *tablename, unsigned long bucketsize, unsigned long numentries, int scale,

2017-10-16 23:42:08 1229

原创 mem_init

mem_init() marks the free areas in the mem_map and tells us how much memory is free. 即释放内存到伙伴系统,对一些内存方面的全局变量设置 首先我们需要明白mem_map作用,其是描述所有的物理内存采用的struct page结构的数组的基指针。比如说,对于4GB的内存来说,如果一个页定义为4KB,即2^12字节。

2017-10-15 21:38:24 2600

原创 __unflatten_device_tree

void __unflatten_device_tree(struct boot_param_header blob,struct device_node **mynodes,void (*dt_alloc)(u64 size, u64 align)) 1.解析设备树头信息 2.计算设备节点的个数,根据个数来为设备节点分配内存 3.从设备树上将设备节点解析出来 4.解析完成后,校验一下解析

2017-10-11 22:24:30 1205

原创 unflatten_device_tree

void __init unflatten_device_tree(void) { __unflatten_device_tree(initial_boot_params, &of_allnodes, early_init_dt_alloc_memory_arch);/* Get pointer to "/chosen" and "/aliasas" n

2017-10-11 21:56:06 862

原创 map_mem

static void __init map_mem(void){struct memblock_region *reg;/* map all the memory banks */for_each_memblock(memory, reg) {phys_addr_t start = reg->base;phys_addr_t end = start + r

2017-10-10 23:00:55 856

转载 解析

搞了一段时间的嵌入式网络视频采集与传输,基本上在服务器端采集视频用的是servfox程序包,它可以用arm-linux-gcc编译后移植到开发板上,我现在一直在做这方面的工作,用的是S3C2410的板子,这个开源程序十分不错,觉得有必要深入理解和学习一下它的源程序,网上一般没有对它的详细说明,只是简单介绍了它怎么用的,就如我当初刚开始学习嵌入式时一样看不懂这个程序,现在对其各个代码作个详细的解释,

2017-10-10 22:50:43 188

原创 bootmem_init

难点1.bootmem_init------------------->arm64_memory_present------>memory_present/* Record a memory area against a node. */void __init memory_present(int nid, unsigned long start, unsigned long end)

2017-10-09 22:32:33 339

原创 setup_processor

struct cpu_info __initdata cpu_table[] = {{.cpu_id_val = 0x000f0000,.cpu_id_mask = 0x000f0000,.cpu_name = "AArch64 Processor",.cpu_setup = __cpu_setup,},{ /* Empty */ },};cpu

2017-10-06 19:34:36 369

原创 setup_arch(&command_line)

void __init setup_arch(char **cmdline_p){setup_processor();setup_machine_fdt(__fdt_pointer);init_mm.start_code = (unsigned long) _text;init_mm.end_code   = (unsigned long) _etext;i

2017-10-06 19:28:42 672

原创 linux 内核启动 arm64 汇编 head.s

/* * Low-level CPU initialisation * Based on arch/arm/kernel/head.S * * Copyright (C) 1994-2002 Russell King * Copyright (C) 2003-2012 ARM Ltd. * Authors: Catalin Marinas  * Will Deacon

2017-10-06 19:22:08 1362 1

转载 stm32 crc

查表uint32 Crc32Table[256]={ 0x00000000,0x04C11DB7,0x09823B6E,0x0D4326D9,0x130476DC,0x17C56B6B,0x1A864DB2,0x1E475005, 0x2608EDB8,0x22C9F00F,0x2F8AD6D6,0x2B4BCB61,0x350C9B64,0x31CD86D3

2013-11-13 22:54:55 1728

YOLO火焰检测数据集

YOLO火焰检测数据集 1800 多张图片,标注完成,可直接训练

2024-04-10

rk3588下yolov5火焰识别h264输出log

rk3588下yolov5火焰识别h264输出log

2024-03-10

rk3588下yolov5火焰识别h264输出log

rk3588下yolov5火焰识别h264输出log

2024-03-10

rk3588下yolov5火焰识别h264输出log

rk3588下yolov5火焰识别h264输出log

2024-03-10

OrangePi-5-RK3588S-用户手册-v2.0.pdf

OrangePi_5_RK3588S_用户手册_v2.0.pdf

2024-02-28

sst 仿真宏130000000

sst 仿真宏130000000

2024-01-06

sst 仿真元素1300000

sst 仿真元素1300000

2024-01-06

-sst 仿真 core-1300000

-sst 仿真 core-1300000

2024-01-06

ipc http config 抓包

ipc http config 抓包

2022-12-04

systemd-analyze plot

systemd-analyze plot systemd-analyze plot

2022-09-19

开发国标28181用到的协议

开发国标28181用到的协议

2022-08-16

GobiNet-18114-Release-V1

GobiNet-18114-Release-V1

2022-08-14

linux 文档 linux 文档

linux 文档 linux 文档

2022-07-24

从0开始编译onvif 框架

从0开始编译onvif 框架

2022-07-10

onvif 抓包报文 onvif 抓包报文

onvif 抓包报文onvif 抓包报文

2022-07-07

onvif rtsp264 onvif rtsp264 onvif rtsp264

onvif rtsp264 onvif rtsp264 onvif rtsp264

2022-07-03

海思编译器编译器编译器

编译器 编译器编译器编译器编译器

2022-06-29

rtsp h265 hisi

tftp -g -r rtsp-h265 192.168.1.100 ./rtsp-h265 rtsp://192.168.1.20/test.265

2022-06-28

rtmp 传输协议code

rtmp 传输协议code

2022-06-24

ds5-ce-linux

ds5-ce-linux

2022-04-23

cpp-design-patterns-master.tar.gz

C++设计模式

2021-07-07

libcstl.zip

libcstl.zip

2021-06-01

动态数组链表数据结构.docx

动态数组链表数据结构.docx

2021-05-30

perf-tools.zip

perf 性能分析工具

2021-03-21

gcc-9.1.0.tar.xz

支持c++ 17 特性

2021-03-05

常见的十多中内核调试.pdf

常见的十多中内核调试.pdf

2021-01-24

linux code.zip

linux 应用编程中的基础函数

2020-05-25

linux网络资料.7z

linux 网络相关。

2020-04-12

linux 性能优化.7z

基本关于新能优化的介绍,用例查阅学习,供自己方便的时候查阅,也分享给大家。

2020-04-12

vim 使用的小技巧 zip

vim 使用的小技巧,文本编译器适用方法,大脚好好练习。

2019-08-11

微信小程序入门

小程序的代码构成以及四个重要的文件类型(wxml、wxss、js和app.json) 主要讲解这方面的入门书籍

2018-11-17

微信小程序和价值投资

价值投资主要讲述一个散户如何在市场上赚到钱。 微信小程序入门

2018-11-17

Linker script in Linux

Linker script in Linux 详细描述链接脚本的文档

2017-04-02

链接脚本解析

2017-04-02

关于存储方面的资料

有关存储方面的资料

2012-11-28

MMC_SD_SD_

SD卡的资料,包括协议和代码,值得收藏 SD卡的资料,包括协议和代码,值得收

2012-11-28

点菜系统apk

android版使用说明_22.05,android版使用说明_22.05

2012-07-20

Android开发者资料大全

Android开发者资料大全

2012-06-29

ARM11 S3C6410_中文用户手册

ARM11 S3C6410_中文用户手册

2012-06-03

Linux内核情景分析

Linux内核情景分析

2012-05-26

空空如也

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

TA关注的人

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