- 博客(105)
- 资源 (16)
- 收藏
- 关注
原创 StableDiffusion+ComfyUI
本文只讲述了标准版本stable diffusion的安装方法,未涉及到意见安装、模型安装、ComfyUI安装以及使用方法等。如果电脑里安装有多个python版本,注意调整下环境变量,保证python3.10.9为默认版本。五、安装stable diffusion。
2025-02-18 12:08:46
570
原创 在香橙派5 NPU上使用Yolov5
【香橙派】使用NPU部署Yolov5的完整解决方案Orangepi 5 Pro(香橙派5pro)部署yolov5RK3588实战:调用npu加速,yolov5识别图像、ffmpeg发送到rtmp服务器香橙派5 RK3588 yolov5模型转换rknn及部署踩坑全记录 orangepi 5香橙派使用NPU部署Yolov5的完整解决方案
2025-02-13 14:17:02
867
原创 DeepSeek
学用系列|保姆级Deepseek本地部署教学设计助手指导高效快速教你deepseek如何进行本地部署并且可视化对话本地Deepseek添加个人知识库(Page Assist/AnythingLLM)1000个AI开源项目有多大使用Ollama和Go基于文本嵌入模型实现文本向量化立创开发板入门ESP32C3第八课 修改AI大模型接口为deepseek3接口
2025-02-08 11:26:44
234
原创 Linux驱动——ALSA
ALSA_control&dapm宏定义小狼@http://blog.youkuaiyun.com/xiaolangyangyangControl宏定义:SOC_SINGLE_VALUESOC_SINGLE_VALUE_EXTSOC_SINGLESOC_SINGLE_TLVSOC_DOUBLESOC_DOUBLE_RSOC_DOUBLE_TLVSOC_DOUBLE_R_TLVSOC_DOUBLE_S8_TLVSOC_ENUM_DOUBLESOC_ENUM_SINGLESOC..
2022-05-03 18:41:15
2422
原创 heap_5
heap_5小狼@http://blog.youkuaiyun.com/xiaolangyangyang heap_5是将.bss段的mem作为内存管理基础(一大片全局变量),支持多个不连续的内存块,经过函数vPortDefineHeapRegions()执行后,将多个block按地址从小到大使用链表串联起来,如下图所示:内存申请使用pvPortMalloc()函数,该函数在内存块链表中依次查找size大于待申请长度的block,如果存在这样的block,将该block从链...
2022-04-22 16:44:30
754
原创 Linux驱动——PCI
PCI设备小狼@http://blog.youkuaiyun.com/xiaolangyangyangPCI设备枚举过程:(PC系统中BIOS和OS均实现了枚举过程,linux可通过内核PCI access mode配置选择使用OS还是BIOS进行枚举,嵌入式系统中枚举过程由linux驱动实现)1、PCI控制器是通过读取配置空间寄存器的VID检测是否存在bridge或device,读取值为0xFF则为空;2、PCI控制器在bus上(从bus0-device0-func0开始)扫描br..
2022-04-17 09:54:38
3229
原创 嵌入式简答
嵌入式简答小狼@http://blog.youkuaiyun.com/xiaolangyangyangXIPC:cadance自带的多核通信模块,支持同步及互斥等源语;XAF:xtensa audio framework,主要实现components;XIP:Nor Flash芯片内执行;xtensa中断优先级:分为level1/2,优先级固定,中断向量固定,多个中断线,硬件自动压栈;arm内核区分arm和thumb指令的方法:指令中最高位标记指令类型;栈回溯原理:1、不带操作系统,将栈
2022-04-07 16:37:38
799
原创 代码重定位——基本原理及实现
Uboot运行地址和装载地址区别小狼@http://blog.youkuaiyun.com/xiaolangyangyang 参考文献:代码重定位解析加载地址和运行时地址 & 代码重定位 (2020)
2022-01-11 13:56:39
3103
2
原创 STM32开发笔记(四)——FreeRTOS
STM32开发笔记(四)——FreeRTOS小狼@http://blog.youkuaiyun.com/xiaolangyangyang一、FreeRTOS调度原理 FreeRTOS调度分为时间片调度和抢占调度两种。 时间片调度:在tick(周期1ms)到来时会检查线程时间片是否用完以进行调度; 抢占式调度:1、在tick到来时,检查是否有处于就绪态的高优先级线程以完成调度;2、使用定时器中断实现了us级延时的线程,在定时器中断中进行调度;3、高优...
2021-11-18 08:24:48
910
原创 代码重定位——ELF分段、API/ABI、指定函数(变量)地址、分散加载、函数调用过程、动态加载
ELF目标文件分段结构小狼@http://blog.youkuaiyun.com/xiaolangyangyang一、采用分段结构的优点 1、分段易于管理,对于代码段,是只读的,而数据段可读写; 2、提高cache命中率,Icache与Dcache分开,分别读取代码段和数据段的数据; 3、未初始化数据放在.bss段,生成bin文件时不包含该部分,只在startup.s的指令中保存.bss段的__bss_start和__bss_end地址,减小bi...
2021-09-02 23:30:07
1466
转载 STM32开发笔记(三)——通过map文件了解堆栈分配(STM32、MDK5)避免堆栈溢出
STM32开发笔记(二)——通过map文件了解堆栈分配(STM32、MDK5)--避免堆栈溢出小狼@http://blog.youkuaiyun.com/xiaolangyangyang 在最近的一个项目的开发中,每当调用到一个函数,程序就直接跑飞。debug跟进去看不出什么逻辑错误,但发现函数内局部变量声明之后,全局变量的值被清零,后来查看局部变量地址已经超出栈的范围,于是确定是栈溢出。如果不稍微了解一下堆栈,在开发过程中可能碰到各种奇怪的错误。.map和startup.s文...
2021-05-22 18:10:47
2419
1
转载 STM32开发笔记(二)——动态模块加载和ELFLoader
STM32开发系列——动态模块加载和ELFLoader小狼@http://blog.youkuaiyun.com/xiaolangyangyang动态模块加载的好处动态模块加载的好处很多,例如,当你升级一个系统的时候,可以只升级一个模块,而不必升级整个系统。你可以把不同的模块放在不同的介质上,并实施不同等级的保护,例如BIOS部分进行写保护。有些系统允许用户进行二次开发,这个时候几乎一定是需要动态加载功能的,因为你不希望用户需要链接整个系统才能够进行二次开发,而且你可能希望支持多个用户模块...
2021-05-18 23:24:27
5274
转载 Linux内核原语(十一)——互斥锁MUTEX实现信号量SEMA
Linux内核原语(十一)——互斥锁MUTEX实现信号量SEMA小狼@http://blog.youkuaiyun.com/xiaolangyangyang/* ======================== SYNCHRONISATION ========================= *//* Init semaphore to 1 or 0 */void bsem_init(bsem *bsem_p, int value) { if (value < 0 ...
2021-05-18 16:43:23
399
转载 Linux内核原语(十)——RCU机制
Linux内核原语(十)——RCU机制小狼@http://blog.youkuaiyun.com/xiaolangyangyangRCU 的全称是(Read-Copy-Update),意在读写-复制-更新,在 Linux 提供的所有内核互斥的设施当中属于一种免锁机制。在之前讨论过的读写自旋锁(rwlock)、顺序锁(seqlock)一样,RCU 的适用模型也是读写共存的系统。读写自旋锁:读者和写者互斥,读者和读者共存,写者和写者互斥。(偏向读者) 顺序锁:写者和写者互斥,写者直接打断读者...
2021-05-18 16:26:40
864
转载 Linux内核原语(九)——互斥体(mutex)
Linux内核原语(九)——互斥体(mutex)小狼@http://blog.youkuaiyun.com/xiaolangyangyang互斥体是一种睡眠锁,他是一种简单的睡眠锁,其行为和 count 为 1 的信号量类似。(关于信号量参考:Linux内核原语(八)——信号量(semaphore))。互斥体简洁高效,但是相比信号量,有更多的限制,因此对于互斥体的使用条件更加严格:任何时刻,只有一个指定的任务允许持有 mutex,也就是说,mutex 的计数永远是 1; 给 mutex 上...
2021-05-18 16:12:40
791
转载 Linux内核原语(八)——信号量(semaphore)
Linux内核原语(八)——信号量(semaphore)小狼@http://blog.youkuaiyun.com/xiaolangyangyangLinux Kernel 除了提供了自旋锁,还提供了睡眠锁,信号量就是一种睡眠锁。信号量的特点是,如果一个任务试图获取一个已经被占用的信号量,他会被推入等待队列,让其进入睡眠。此刻处理器重获自由,去执行其他的代码。当持有的信号量被释放,处于等待队列的任务将被唤醒,并获取到该信号量。从信号量的睡眠特性得出一些结论:由于竞争信号量的时候,未能拿...
2021-05-18 15:37:58
827
转载 Linux内核原语(七)——顺序锁(seqlock)
Linux内核原语(七)——顺序锁(seqlock)小狼@http://blog.youkuaiyun.com/xiaolangyangyang上一章中讲到的读-写自旋锁,更加偏向于读者。内核提供了更加偏向于写者的锁 —— seqlock这种锁提供了一种简单的读写共享的机制,他的设计偏向于写者,无论是什么情况(没有多个写者竞争的情况),写者都有直接写入的权利(霸道),而读者呢?这里提供了一个序列值,当写者进入的时候,这个序列值会加 1,而读者去在读出数值的前后分别来 check 这个值,便...
2021-05-18 15:32:12
410
原创 STM32开发笔记(一)——SysTick中断
STM32开发系列——SysTick中断小狼@http://blog.youkuaiyun.com/xiaolangyangyangSysTick定时器有两大用途:没有操作系统:只用于精准延时 操作系统(Ucos2、Ucos3、Freertos):为操作系统提供精准的定时中断(1ms~50ms)作为操作系统滴答SysTick配置:HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq/1000); // SysTick中断频率1KHz// 在Ucos...
2021-05-18 11:52:58
2888
原创 代码重定位——uboot装载地址和运行地址
Uboot开发——运行地址和装载地址区别小狼@http://blog.youkuaiyun.com/xiaolangyangyanguboot移植涉及到底层硬件的设置,因此需要掌握UART、系统时钟频率、NOR FLASH、NAND FLASH、SDRAM、网卡、存储控制器等硬件的功能及配置,这些都可以参照相应开发板的芯片手册来完成,没有什么大的问题。在移植过程中,一直困扰我的是PIC(代码无关性)问题,即运行地址和加载地址的区别,看过网上很多关于这两者的介绍,感觉懂一点,却一直不知所然。在参考大量...
2021-05-18 11:22:24
2950
2
转载 Linux内核原语(六)——读-写自旋锁(rwlock)
Linux内核原语(四)——读-写自旋锁(rwlock)小狼@http://blog.youkuaiyun.com/xiaolangyangyang上一章聊到了内核的自旋锁 spinlock 相关的内容,试想这样一种场景:一个内核链表元素,很多进程(或者线程)都会对其进行读写,但是使用 spinlock 的话,多个读之间无法并发,只能被 spin,为了提高系统的整体性能,内核定义了一种锁:1. 允许多个处理器进程(或者线程或者中断上下文)并发的进行读操作(SMP 上),这样是安全的,并且提...
2021-05-17 23:52:29
623
转载 Linux内核原语(五)——自旋锁(Spinlock)
Linux内核原语(四)——自旋锁(Spinlock)小狼@http://blog.youkuaiyun.com/xiaolangyangyang内核当发生访问资源冲突的时候,可以有两种锁的解决方案选择:一个是原地等待 一个是挂起当前进程,调度其他进程执行(睡眠)Spinlock 是内核中提供的一种比较常见的锁机制,自旋锁是“原地等待”的方式解决资源冲突的,即,一个线程获取了一个自旋锁后,另外一个线程期望获取该自旋锁,获取不到,只能够原地“打转”(忙等待)。由于自旋锁的这个忙等待的特性,注定...
2021-05-17 23:40:31
1710
转载 Linux内核原语(四)——内存屏障
Linux内核原语(三)——内存屏障小狼@http://blog.youkuaiyun.com/xiaolangyangyang编译器有时会对代码做一些优化,例如尝试在保证程序执行正确的前提下修改指令顺序或优化ldr/str指令,让程序执行地更快。但是编译器毕竟不能完全猜透人的心思,有时候它做的优化会导致程序运行不符我们的预期。因此,内核中提供了一些额外的函数,可以插在某段代码里,告诉编译器不要在这里做指令优化。这些函数分为两种:内存屏障:rmb(), wmb(), mb(...
2021-05-17 23:29:12
778
转载 Linux内核原语(三)——原子操作
Linux内核原语(二)——原子操作小狼@http://blog.youkuaiyun.com/xiaolangyangyang原子操作,指的是一段不可打断的执行。也就是你不可分割的操作。在 Linux 上提供了原子操作的结构,atomic_t :typedef struct { int counter;} atomic_t;把整型原子操作定义为结构体,让原子函数只接收atomic_t类型的参数进而确保原子操作只与这种特殊类型数据一起使用,同时也保证了该类型的数...
2021-05-17 23:22:49
651
转载 Linux内核原语(二)——简介
Linux内核原语介绍小狼@http://blog.youkuaiyun.com/xiaolangyangyang在使用共享内存的程序代码中,为了保护共享资源,放置共享资源的并发访问导致的错误逻辑,需要用到内核同步机制。临界区是访问和操作共享数据的代码段。多个执行线程并发访问同一个资源(读/写),通常是不安全的,为了避免这种隐患,编程人员必须保证这种访问是原子的(不可打断)。造成并发的原因造成并发有多种原因:中断-------------------------...
2021-05-17 23:00:10
371
原创 几种嵌入式操作系统对比
几种嵌入式操作系统对比小狼@http://blog.youkuaiyun.com/xiaolangyangyang 调度触发机制 调度策略 系统原语 内存管理 License Linux 系统调用 中断 schedule() 抢占式 时间片 原子操作 内存屏障 Spinlock Semaphore Seqlock Rwlock M...
2021-05-17 22:13:39
704
beaglebone做图像识别——am335x_opencv-2.4.12.3_usr_lib.tar.rar
2016-08-23
Stablediffusion模型文件v1-5-pruned-emaonly-fp16.part3
2025-02-18
Stablediffusion模型文件v1-5-pruned-emaonly-fp16.part2
2025-02-18
Stablediffusion模型文件v1-5-pruned-emaonly-fp16.part1
2025-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人