<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/luxiefly</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; luxiefly]]></copyright><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/132204327</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/132204327</guid><author>luxiefly</author><pubDate>Thu, 10 Aug 2023 16:57:57 +0800</pubDate><description><![CDATA[上述流程主要是生成了一个物理ID和逻辑ID并把对应关系加入表中方便后续查询。在devicemanager层创建了一个sensorcontroller（对于hardwarename）便于后续操作设备文件。在hostservice层创建了一个CameraDeviceImpl（对应逻辑ID）给上层设备调用提供实例。最后还自动为此设备填充了metadata数据作为参数以便后续使用。至此在HDF-camera中USB设备插入初始化流程结束。]]></description><category></category></item><item><title><![CDATA[【基于openharmony的多路摄像头功能：USB设备插拔检测】]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/132147981</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/132147981</guid><author>luxiefly</author><pubDate>Tue, 08 Aug 2023 15:26:18 +0800</pubDate><description><![CDATA[最近项目接触的模块比较繁多而杂，因此开始写文章记录下用以总结。目前在做的是基于openharmony3.2的多camera功能主要涉及HDF(HAL)层与framework层。本文章涉及多路摄像头功能的第一步：支持USB摄像头插拔检测。]]></description><category></category></item><item><title><![CDATA[使用IO内存控制硬件点亮LED灯]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/25391149</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/25391149</guid><author>luxiefly</author><pubDate>Fri, 09 May 2014 14:17:35 +0800</pubDate><description><![CDATA[Linux中控制GPIO点亮LED的方法有好几种。一种是使用内核提供的专门用来控制GPIO的函数来点亮LED，如：
s3c2410_gpio_cfgpin(led_table[i], led_cfg_table[i]);
              s3c2410_gpio_setpin(led_table[i], 0);
一种是通过IO内存获取硬件地址从而控制GPIO来点亮LED，如：
]]></description><category></category></item><item><title><![CDATA[GPIO-API for ARM]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/25371179</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/25371179</guid><author>luxiefly</author><pubDate>Fri, 09 May 2014 10:21:13 +0800</pubDate><description><![CDATA[函数原型:s3c2410_gpio_cfgpin(unsigned int pin,unsigned int function)
位置:/linux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.c
函数内容：
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)
{
void __i]]></description><category></category></item><item><title><![CDATA[S3C2440 LED驱动]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/24651123</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/24651123</guid><author>luxiefly</author><pubDate>Mon, 28 Apr 2014 16:27:37 +0800</pubDate><description><![CDATA[S3C2440 LED驱动

//头文件
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
]]></description><category></category></item><item><title><![CDATA[linux驱动-GPIO借鉴文章]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/24257927</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/24257927</guid><author>luxiefly</author><pubDate>Mon, 21 Apr 2014 15:51:30 +0800</pubDate><description><![CDATA[今天完成了嵌入式linux的第一个驱动的编写和测试，虽然是个简单的程序，但是麻雀虽小，五脏俱全，希望可以给刚开始接触驱动编写的人一些提示，共同进步。源代码：分析如下： 下面是我的驱动程序：#include //配置头文件#include /*内核头文件，作为系统核心的一部分，设备驱动程序在申请和释放内存时，不是调用malloc和free，而是调用kmalloc和kfree*/#include //]]></description><category></category></item><item><title><![CDATA[内核模块Makefile]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/24008777</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/24008777</guid><author>luxiefly</author><pubDate>Fri, 18 Apr 2014 12:42:57 +0800</pubDate><description><![CDATA[obj-m := hello.o

KDIR:=/lib/modules/$(shell uname -r)/build

# PWD=$(shell pwd)

all:

        make -C $(KDIR) M=$(PWD) modules

clean:

        make -C $(KDIR) M=$(PWD) clean




ob]]></description><category></category></item><item><title><![CDATA[EXPORT_SYMBOL]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/24004955</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/24004955</guid><author>luxiefly</author><pubDate>Fri, 18 Apr 2014 11:33:27 +0800</pubDate><description><![CDATA[在查看内核驱动代码的时候会经常看到在一些函数后面总会跟EXPORT_SYMBOL()这样的宏定义，通过网上查阅，它的作用大致总结如下：
1、定义说明
     把内核函数的符号导出，也可以理解成将函数名作为符号导出；符号的意思就是函数的入口地址，或者说是把这些符号和对应的地址保存起来的，在内核运行的过程中，可以找到这些符号对应的地址的。
2、相关处理
     （1）、对编译所得的.ko进]]></description><category></category></item><item><title><![CDATA[C语言内存管理]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/23945503</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/23945503</guid><author>luxiefly</author><pubDate>Thu, 17 Apr 2014 17:00:01 +0800</pubDate><description><![CDATA[ccppQt








121
主题

0
好友

1102
积分




大家网大学二年级


积分1102帖子243精华8经验770 点威望0 点金币716 

发消息



电梯直达
1楼


发表于 2009-10-26 22:12|只看该作者|倒序浏览









　　伟大的Bill Ga]]></description><category></category></item><item><title><![CDATA[linux设备模型之Kobject与Kset]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/22076007</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/22076007</guid><author>luxiefly</author><pubDate>Tue, 25 Mar 2014 16:54:41 +0800</pubDate><description><![CDATA[以《LDD3》的说法：Linux设备模型这部分内容可以认为是高级教材，对于多数程序作者来说是不必要的。但是我个人认为：对于一个嵌入式Linux的底层程序员来说，这部分内容是很重要的。以我学习的ARM9为例，有很多总线（如SPI、IIC、IIS等等）在Linux下已经被编写成了子系统，无需自己写驱动；而这些总线又不像PCI、USB等在《LDD3》上有教程，有时还要自己研究它的子系统构架，甚至要自己添]]></description><category></category></item><item><title><![CDATA[GPIO in linux详解]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21707781</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21707781</guid><author>luxiefly</author><pubDate>Fri, 21 Mar 2014 12:05:31 +0800</pubDate><description><![CDATA[原文地址 http://blog.youkuaiyun.com/llxmedici/article/details/6282372打算跟着友善之臂的《mini2440 linux移植开发指南》来做个LED驱动，虽然LED的原理简单得不能再简单了，但是要把kernel中针对于s3c24**的GPIO的一些数据结构，还有函数搞清楚也不是那么轻松的事，所以本文主要简单地说明下LED驱动中的相关数据结构以及函数/宏的]]></description><category></category></item><item><title><![CDATA[linux之进程空间等内存空间]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21631777</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21631777</guid><author>luxiefly</author><pubDate>Thu, 20 Mar 2014 16:50:55 +0800</pubDate><description><![CDATA[作者：李强,华清远见嵌入式学院讲师。
有这么几个问题，在上驱动课程的时候，我感觉一直困扰着同学们：
●    用户程序编译连接形成的地址空间在什么范围内？
        ●    内核编译后地址空间在什么范围内？
        ●    要对外设进行访问，I/O的地址空间又是什么样的？
于是就有了这篇文章，从大概上把内存相关知识点介绍一下，减少同学们在驱动课时对内存的困惑
先回答第]]></description><category></category></item><item><title><![CDATA[linux驱动之LED]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21631049</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21631049</guid><author>luxiefly</author><pubDate>Thu, 20 Mar 2014 16:43:43 +0800</pubDate><description><![CDATA[mini2440上LED对应的IO：




LED1


GPB5




LED2


GPB6




LED3


GPB7




LED4


GPB8




低电平有效（点亮）
寄存器：




GPxCON


设置端口功能（00表示输入，01表示输出，10表示特殊功能，11保留不用）
]]></description><category></category></item><item><title><![CDATA[linux驱动之内存与IO]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21628775</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21628775</guid><author>luxiefly</author><pubDate>Thu, 20 Mar 2014 16:18:56 +0800</pubDate><description><![CDATA[MMU停供虚拟地址和物理地址的映射、内存访问权限保护和Cache缓存控制等硬件支持。操作系统内核借助MMU，可以让用户感觉到好像程序可以使用非常大的内存空间，从而使得编程人员在写程序时不用考虑计算机的物理内存的实际容量
 
如图，当ARM要访问存储器时，MMU先查找TLB中的虚拟地址表。如果ARM的结构支持分开的数据TLB（DTLB）和指令TLB（ITLB），则除去指令使用的ITLB外，其他的]]></description><category></category></item><item><title><![CDATA[linux设备驱动作用]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21456595</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21456595</guid><author>luxiefly</author><pubDate>Tue, 18 Mar 2014 14:09:17 +0800</pubDate><description><![CDATA[Linux设备驱动程序的作用
简介

设备 驱动程序就像一个个的“黑盒子”，使某个特定硬件响应一个定义良好的内部编程接口，这些操作完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行，而这些调用独立于特定的驱动程序。将这些调用映射到作用于实际硬件的设备特有操作上，则是设备驱动程序的任务。 



 



大多数编程可以分为两个部分：




机制：需要提供]]></description><category></category></item><item><title><![CDATA[linux内核头文件]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21456459</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21456459</guid><author>luxiefly</author><pubDate>Tue, 18 Mar 2014 14:05:40 +0800</pubDate><description><![CDATA[#include  是在linux-2.6.29/include/linux下面寻找源文件。

#include  是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。

#include  是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。

#include在linux-2.6.31_]]></description><category></category></item><item><title><![CDATA[对linux字符设备的理解（整体架构）]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21375263</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21375263</guid><author>luxiefly</author><pubDate>Mon, 17 Mar 2014 10:47:34 +0800</pubDate><description><![CDATA[主要数据结构：

struct cdev {
struct kobject kobj; //内嵌的kobj，对象管理用
struct module *owner; //模块
const struct file_operations *ops; //文件操作
struct list_head list;
dev_t dev; //起始设备号
unsigned int count; /]]></description><category></category></item><item><title><![CDATA[linux cdev详解]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/21241515</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/21241515</guid><author>luxiefly</author><pubDate>Fri, 14 Mar 2014 16:41:10 +0800</pubDate><description><![CDATA[linux cdev详解






谨以此文纪念过往的岁月

一.前言
以前对于cdev仅仅是知其然，而不知其所以然。在本文中，将深入理解cdev的架构以及具体的实现。

二.真实的cdev
2.1 设备号
搞驱动的都应该知道的东西，在写gpio驱动时，往往会用到以下两个函数。
alloc_chrdev_region     --自动分配设备号
register_]]></description><category></category></item><item><title><![CDATA[linux驱动学习过程]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/20704545</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/20704545</guid><author>luxiefly</author><pubDate>Fri, 07 Mar 2014 13:27:24 +0800</pubDate><description><![CDATA[了解linux驱动程序技巧学习的方法很重要，学习linux操作系统时，你可能会遇到关于驱动方面的问题，这里将介绍学习linux驱动程序的方法，在这里拿出来和大家分享一下。
　　1.学会写简单的makefile
　　2.编一应用程序，可以用makefile跑起来
　　3.学会写linux驱动程序的makefile
　　4.写一简单char驱动，makefile编译通过，可以insmod，ls]]></description><category></category></item><item><title><![CDATA[linux 头文件以及库的路径]]></title><link>https://blog.youkuaiyun.com/luxiefly/article/details/19492421</link><guid>https://blog.youkuaiyun.com/luxiefly/article/details/19492421</guid><author>luxiefly</author><pubDate>Wed, 19 Feb 2014 16:14:53 +0800</pubDate><description><![CDATA[原来在编译的时候可以指定执行时去哪里找需要的lib文件，长知识了



本文详细介绍了linux 下gcc头文件指定方法，以及搜索路径顺序的问题。另外，还总结了，gcc动态链接的方法以及路径指定，同样也讨论了搜索路径的顺序问题。本文包含了很多的例子，具有很强的操作性，希望读者自己去走一遍。
一.#include 

#include 
#include “”先到源文件所在文件夹去找]]></description><category></category></item></channel></rss>