当前位置:  编程技术>移动开发
本页文章导读:
    ▪platform总路线上iic probe分析笔记        platform总线上iic probe分析笔记/*下面是设备提供给驱动的平台数据和资源,结构体在iic.h文件中定义*/ static struct s3c2410_platform_i2c default_i2c_data0 __initdata = { .flags = 0, .slave_addr = 0x10, .frequency = 100*10.........
    ▪ 找工作的童鞋注意了!工作面试项目实战视频教程之一:传智播客软件工程师网校张孝祥-7K月薪面试题破解之一:交通灯管理系统        找工作的童鞋注意了!工作面试项目实战视频教程之一:传智播客程序员网校张孝祥-7K月薪面试题破解之一:交通灯管理系统这是张孝祥老师两集关于面试视频教程中的一个,主要讲解了现.........
    ▪ OpenGL超级宝典札记8       OpenGL超级宝典笔记8 第十四章 深度纹理和阴影 阴影贴图是一种实用的技巧,可以实现逼真的光照效果,而不需要大量的额外处理。光源的视点可以用于确定哪些物体被照射以及哪些物体被.........

[1]platform总路线上iic probe分析笔记
    来源: 互联网  发布时间: 2014-02-18
platform总线上iic probe分析笔记
/*下面是设备提供给驱动的平台数据和资源,结构体在iic.h文件中定义*/
static struct s3c2410_platform_i2c default_i2c_data0 __initdata = {
.flags = 0,
.slave_addr = 0x10,
.frequency = 100*1000,
.sda_delay = 100,
};
static struct resource s3c_i2c_resource[] = {
[0] = {
.start = S3C_PA_IIC,
.end   = S3C_PA_IIC + SZ_4K - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_IIC,
.end   = IRQ_IIC,
.flags = IORESOURCE_IRQ,
},
};


/*在驱动和设备加载到总线上,并完成匹配的时候会调用驱动下面的probe函数驱动该硬件工作*/
在probe中初始化了三个结构体
struct s3c24xx_i2c *i2c;//在驱动文件中定义的“大”结构体
struct s3c2410_platform_i2c *pdata;//这两项是有设备提供的。
struct resource *res;
下面是对“大”结构体中的适配器(控制器)结构体(在iic.h中定义的)进行初始化
strlcpy(i2c->adap.name, "s3c2410-i2c", sizeof(i2c->adap.name));
i2c->adap.owner   = THIS_MODULE;
i2c->adap.algo    = &s3c24xx_i2c_algorithm;
i2c->adap.retries = 2;
i2c->adap.class   = I2C_CLASS_HWMON | I2C_CLASS_SPD;
i2c->tx_setup     = 50;
/* find the clock and enable it */
i2c->dev = &pdev->dev;
i2c->clk = clk_get(&pdev->dev, "i2c");
clk_enable(i2c->clk);
/* map the registers */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);//获得设备的IORESOURCE_MEM
i2c->ioarea = request_mem_region(res->start, resource_size(res),
pdev->name);//接着对“大”结构体初始化,这里是申请IO资源
i2c->regs = ioremap(res->start, resource_size(res));//对IO映射
/* setup info block for the i2c core */
i2c->adap.algo_data = i2c;
i2c->adap.dev.parent = &pdev->dev;

/* initialise the i2c controller */
ret = s3c24xx_i2c_init(i2c);//初始化IO控制器
/*s3c24xx_i2c_init()函数的作用就是initialise the controller,set the IO lines and frequency*/
下面是对中断的配置
i2c->irq = ret = platform_get_irq(pdev, 0);
ret = request_irq(i2c->irq, s3c24xx_i2c_irq, IRQF_DISABLED,
 dev_name(&pdev->dev), i2c);
ret = s3c24xx_i2c_register_cpufreq(i2c);

platform_set_drvdata(pdev, i2c);//将i2c大结构体的数据放在dev->p->driver_data = data;
clk_disable(i2c->clk);
至此,probe完成,其工作主要是对适配器的初始化包含一些时钟IO和中断资源的申请。
操作系统就是这样,把资源都封装起来,驱动写起来更规范。
注意:这里并没有实现sysfs上的文件的操作函数,就是open write等操作方法,自己可以加上,作为函数调用,提供给应用程序是用,写个小的API玩一下。参考博文:http://blog.chinaunix.net/uid-22030783-id-1710998.html

    
[2] 找工作的童鞋注意了!工作面试项目实战视频教程之一:传智播客软件工程师网校张孝祥-7K月薪面试题破解之一:交通灯管理系统
    来源: 互联网  发布时间: 2014-02-18
找工作的童鞋注意了!工作面试项目实战视频教程之一:传智播客程序员网校张孝祥-7K月薪面试题破解之一:交通灯管理系统
这是张孝祥老师两集关于面试视频教程中的一个,主要讲解了现实的真实项目(交通灯管理系统),希望能帮助到找工作中的你。张孝祥老师是一个特别好的老师,学Java他的视频教程是最好的。缅怀一下张孝祥老师!!!

这是项目实战视频教程,非常适合有点基础,但找工作又没有实战经验的童鞋看看!

视频教程内容有:
交通灯管理系统视频教程_圆了程序员梦却失去了心爱女友漫谈
面试题来源与情景介绍_交通灯管理系统视频教程
程序员网校与程序员职业生涯分析_交通灯管理系统视频教程
交通灯管理系统的业务和需求分析_交通灯管理系统视频教程
精通面向对象的分析和设计的秘诀_交通灯管理系统视频
交通灯控制系统的类的实现细节分析_交通灯管理系统视频教程
编写Road类中模拟汽车上路的代码_交通灯管理系统视频教程
定义器与Road类中模拟汽车穿过路口_交通灯管理系统视频教程
编写表示交通灯的Lamp类的代码_交通灯管理系统视频教程

视频教程高清在线观看地址:http://www.icoolxue.com/album/show/33

    
[3] OpenGL超级宝典札记8
    来源: 互联网  发布时间: 2014-02-18
OpenGL超级宝典笔记8


第十四章 深度纹理和阴影

阴影贴图是一种实用的技巧,可以实现逼真的光照效果,而不需要大量的额外处理。光源的视点可以用于确定哪些物体被照射以及哪些物体被阴影所遮掩。深度纹理是一种特殊的纹理,它存储深度缓冲区的内容,把它作为阴影贴图使用。

a) 一种新类型的纹理 我们需要把深度值从深度缓冲区复制到一个纹理中,作为阴影贴图使用。OpenGL允许通过glCopyTexImage2D函数直接把颜色值复制到纹理中。

b) 首先绘制阴影,模拟一些环境光,然后就是光照。 我们需要以纹理坐标为结束,它将索引到光源的裁剪空间的阴影贴图中。首先把视觉线性纹理坐标投影到照相机的视觉空间。因此要回溯到场景空间,然后再变换到光源的视觉空间并最终变换到光源的裁剪空间。矩阵乘法表示为M=P_light*MV_light*MV_camera-1 。设置一个纹理矩阵,负责实现必要的纹理坐标操作。然后,将使用与视觉线性纹理坐标生成相关联的平面方程式,使纹理矩阵发挥作用。

c) 阴影比较 最后把深度测试设置为“小于等于”,这样我们就可以在微弱的基础上进行光照下的绘图。否则,由于几何图形是相同的,光照将无法通过深度测试,这样在弱光阴影之后就不会显示任何东西,接着将生成纹理把它绑定到阴影贴图中,把纹理坐标环境模式设置为截取到边缘纹理单元。

 

第十五章 可编程管线:这已不是旧式的OpenGL

学习OpenGL着色语言GLSL的基础知识,讨论所有的变量类型、操作符以及操控流机制。还描述如何使用命令加载和编译着色器对象,以及链接和使用程序对象。

a) 新的占主导,着色器 它的实质是应用程序所定义的自定义程序,用于接替固定功能管线阶段的职责。可编程顶点着色器,能够替代顶点变换、光照、纹理坐标处理。固定功能胶水:在顶点着色器和片段着色器之间,仍然保留了一些固定功能阶段,它们将作为粘贴两种着色器的胶水。可编程片段着色器能够替代纹理、颜色求和、替代雾。

b) 管理高层着色器 GLSL使用两种类型的对象:着色器对象和程序对象。着色器对象加载着色器文本并对它进行编译。调用glGreateShader函数创建着色器,而glDeleteShader函数是删除着色器。着色器对象的目标是简单地接受着色器文本并对它进行编译,当着色器文本被加载到一个着色器对象之后,需要对它进行编译。编译过程就是解析着色器并确保其中不存在错误。

c) 第二种类型对象是程序对象 这种对象作为着色器对象的容器使用,把它们链接到一个可执行文件。关于程序对象操作的函数有:创建和删除、粘附和分离、链接程序、验证程序和使用程序。

d) 变量和函数必须预先进行声明。变量包括:基本类型、结构、数组、限定符、内置的变量。表达式包括:操作符、数组访问、构造函数、成分选择。控制流包括:循环、if/else、discard、函数。

 

第十六章 顶点着色,自行转换、光照和Texgen

讲述顶点着色器能够让读者对它有一个清晰的认识。在现实应用中,顶点着色器常常只扮演与它们对应的片段着色器的支持角色,执行一些诸如准备纹理坐标之类的辅助任务。

a) 散射光照 需要考虑表面相对于入射光线的方向,方程式如下:C_diff = max{N*L,0} x C_mat x C_li // N是这个顶点的单位法线,L是表示从顶点到光源的单位向量的方向。C_mat是表面材料的颜色,C_li是光线的颜色,C_diff是最终的散射颜色。

b) 镜面光照 需要考虑表面相对于入射光线的方向,方程式如下:C_spec = max{n*h,0}^Sexp x C_mat x C_li //H是代表光线向量和视图向量之间夹角正中的方向,称为半角向量。Sexp是镜面指数,用于控制镜面光照的紧密程度。C_spec是最终产生的镜面颜色。

c) 基于顶点的雾 尽管雾是基于片段的光栅化阶段才指定的,出现在纹理阶段之后。但是,在OpenGL实现常常把绝大多数必要的计算提前到顶点阶段,然后把结果插值到图元中。这样可以大大的提高性能,对图像精确度的损失几乎可以忽略不计。

d) 基于顶点的点大小 对于远离观察点的物体,应用雾效果后,颜色也会变淡。类似地,靠近观察点的物体的点大小要大于距观察点较远的点大小。和雾一样,点缩减也是一种非常实用的传递透视信息的视觉线索,它所需要的计算也非常类似。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
编程语言 iis7站长之家
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3