当前位置:文档之家› BMA 201Chapter 17 organizational culture and structure

BMA 201Chapter 17 organizational culture and structure

BMA 201Chapter 17 organizational culture and structure
BMA 201Chapter 17 organizational culture and structure

Chapter 17----Organizational Culture and Ethical Behavior

主要学习目标:

1.区别values 和norms,并知道他们是如何帮助建立organizational culture 的;

2.知道一个公司如何通过formal solicitation practices和informal “on-the-job”learning;

3.知道形成organizational culture的5个factor,并了解为什么不同的组织有不同的文化;

4.了解一个国家的文化如何对组织文化造成影响;

5.了解建立并维持ethical organizational culture的重要性。

知识概要:

https://www.doczj.com/doc/8a4171973.html,anizational culture is a set of shared values, beliefs, and norms行为规范that influence the

way employees think, feel, and behave toward one another and toward people outside the organization. (书P528 PPT L11-4)

●5个重要的building blocks 组成了organizational culture (P528 PPT L11-5)

1)the characteristics of people within the organization 组织中人们的特点

2)organizational ethics 组织伦理

3)the employment relationship 雇佣关系

4)organizational structure 组织结构

5)national culture (组织所属的)国家文化

2.Organizational values are the guiding principles people use to determine which types of behaviors, events, situations, and outcomes are desirable or undesirable (书P528 PPT L11-6)

●分为Terminal value(终极价值观)和Instrumental value (工具价值观)

1)Terminal value:A desired end state or outcome that people seek to achieve

指理想的终极存在状态或结果,人们愿意探寻,付出并实现它.

2)Instrumental value: A desired mode or type of behavior that people seek to follow

一种期望的模式或行为,人们愿意探寻并遵循它.

3. Ways of Transmitting Organizational Culture 组织传播其文化的方法(书P530-531 PPT L11-9~10)

1)Formal socialization practices正式的社会化实践进程

2)Organizational rites and ceremonies组织仪式和典礼

3)The organizational language组织语言

4)Signs,symbols and stories (象征性)信号,标志和故事

4. Where an Organization’s Culture Comes From组织文化来自哪里

其中Organizational Ethics(组织伦理学)是重点(书P535-536)

●Organizational Ethics: The moral values, beliefs, and rules that establish the appropriate way

for an organization and its members to deal with each other and with people outside the organization.

组织伦理是一系列的道德价值观,信仰和制度,它们以一种适宜的方式在组织中建立,帮助组织成员处理相互之间的事宜或与其他组织之间的事宜。

——Sources of Organizational Ethics 组织伦理学的来源(书P538PPT L11-12)

●两种文化:Adaptive适应的versus Inert惰性Cultures (书P541)

1)Adaptive cultures are those values and norms help an organization build momentum动力,grow, and change as needed to achieve its goals and be effective.

2)Inert cultures are those that lead to values and norms that fail to motivate or inspire employees;

they lead to stagnation and often failure over time.

这两个概念不要求掌握,看看就好啦~

Traits of strong, adaptive corporate cultures (书上P543下面每一段的第一句)

●Bias for action 行动偏见

●Nature of the organization’s mission组织使命的本质——Values based on organizational

mission建立在目标,任务的价值观

●Operate the organization组织运营——Organizational design that motivates employees组织设

计和激励员工

5. Hofstede’s Model of National Culture (重点书P545 PPT L11-14~20)

●Individualism个人主义vs. Collectivism集体主义

Individualism:Individual achievement个人成就感,Freedom自由,Competition竞争例子:美国——个人权利至上

Collectivism:Group harmony组织和谐,Cohesiveness凝聚力,Consensus一致度,Cooperation合作

例子:日本——团体利益至上

●Power Distance权力距离

High:

Inequalities exist 不平等性的存在

Gap between rich and poor 贫富差距

例子:马来西亚,中国,危地马拉——财富,地位差距大。权钱不分家。

Low:

Social welfare programs reduce gaps 社会福利减少差距

例子:法国,德国——有权有钱的人应当低调生活。权钱区分,由不同的人掌握。●Achievement vs. Nurturing Orientation 成就导向/ 培育导向

Nurturing Orientation :Quality of life生活质量,Warm personal relationships温暖的人际关系,Service 服务,Caring关心

例子:丹麦,瑞典——注重稳固,和谐的人际关系,平等性,主张按需分配,关注弱

者,关怀弱者。

Achievement Orientation:Assertiveness魄力,Performance表现,Success成功,Competition竞争,Results oriented目标导向。

例子:日本,美国——提倡公平&公正的竞争,主张能者多劳,能者多得,按劳分配,

关注强者。

●Uncertainty Avoidance不确定性规避

High:

Rigid严格,死板,Intolerant 无法忍受,Conformity一致性,Structure结构

例子:日本,法国——对规定很严格,结构很稳定,不能接受不同的观点。

Low:

Easygoing平易近人,Value diversity多样化价值观,Tolerant of difference包容不同。

例子:美国,香港——接受多样性和差异,兼容并包。

●Long-term vs. Short-term Orientation 长期导向/ 短期导向

Long-term:

Thrift节俭,Persistence持续,High savings rate高存储率,Patience耐心。

例子:日本,香港——重视节俭,坚持,储存,着眼长期。

Short-term:

Personal stability 个人稳定性,Happiness幸福度,Living in the present生活现状。

例子:美国,法国——重视个人当前的生活,短期的指标。

Culture Dimensions for different countries:

6.Creating an Ethical Culture

建立ethical culture的方法(书上P550页下面):

1)encourage people to act ethically by putting in place incentives for ethical behavior

2)design an organizational structure that reduce the incentives for people to behave unethically

3)develop fair and equitable human resource procedure toward the management of its diverse employees

4)create a strong board of directors from outside the company with no ties to top managers

5)pressures from people and groups outside the company

一个相关概念(书P552页):

Whistle-blowing告密:When an employee decides to inform an outside person or agency about illegal or unethical managerial behavior.

当一个员工决定将组织中非法或不合伦理的管理行为告知组织之外的个人或机构时,告密行为就发生了。

对应的PPT 22页的总结(内容大体相同,但是PPT更精简易懂):

1)Establish rules and norms that outline organization’s ethical position

建立规则和标准来描述出组织伦理方位(应当怎么做)。

2)Demonstrate commitment to following rules

证明要恪守规则。

3)Reduce incentives for unethical behavior

对于不道德行为,减少相应的奖励措施(予以惩罚的意思)。

4)Develop fair and equitable HR procedures

建立并完善一个公平公正的人力资源规程。

5)Provide access to upper-level managers

(给下层员工)提供与上层经历交流的通道。

6)Encourage employees to voice concerns

鼓励员工表达自己的想法(在公司有自己的话语权,表达出自己关注的事情)

7)Create a strong board of directors

建立一个强大地董事会。

Why Does Unethical Behavior Occur? 为什么会发生不道德行为?

1)Lapses in individual ethics个人道德失误

2)Ruthless pursuit of self-interest过分追赶个人利益

3)Outside pressure外界压力

7.Case Analysis (书P555页):

1)In what ways does 3M try to create strong organizational values and norms?

材料相关原文:

3M encourages employees to spend time on projects of their own choosing.

An informal norm is that researchers should spend 15percent of their time to develop projects of their own choosing.

The “Golden Step Program” rewards successful product innovat ors with substantial monetary bonuses.

These innovators also become members of the “Carlton Hall of Fame,” which gives them recognition throughout the company and access to a career ladder that can take them to the top

3M uses cross-functional teams made up of members from product development, process development, marketing, manufacturing, packaging, and other functions in order to create the organization-wide values to encourage employees to cooperate and share their ideas with one another.

简单概括,共有四点:

i.Give them time (15% time)

ii.资金支持(golden step program)

iii.加入名人堂(Carlton hall of fame)

iv.团队交流(cross-functional teams)

2)What effect do these values and norms have on employee’s behavior?

材料相关原文(同时也是答案哈):

The culture of innovation conveys to its employees the values of excellence and innovation.

The employees feel empowered, experiment, and take risks to come up with new product ideas.—even when their managers doubted the success of their efforts.

It gained the loyalty and support of the employees.

3)How easy would it be for another company to copy 3M’s values and norms?

这个题是开放题,只要可以自圆其说就是正确的。

下面就发表一下我的个人观点 :

我觉得还是可以copy的,比如在time, 资金,加强团队交流等方面。只要想要copy 的那个公司和该材料中的公司在结构和权利、部门划分上没有太大的不同,就可以在某种程度上进行模仿。毕竟组织与组织之间是具有相似性的。

但是要注意具体问题具体分析,不要完全照搬。

将驱动移植到64位Windows操作系统

将驱动移植到64位Windows操作系统 x64位操作系统和x32位操作系统的最大区别就是内存寻址方式的不同。而64位操作系统不支持32位的驱动程序,因为驱动程序和windows内核同处于一个地址空间中。这是移植32位驱动到64位驱动的最大原因。当然,64位驱动程序可以使用更大的分页内存,非分页内存及系统缓存。而且,你的设备从此就支持64位windows操作系统了。 1.在X64下的驱动程序安装 除了要把应用程序的32位驱动程序变成64位程序之外,驱动的安装程序和其它配置文件同样需要修改。也就是说,对于要在x64上运行的32位程序,它所依赖的驱动仍然需要是64位的。这些相关程序包括inf文件,device installers, class installers和co-installers。相关资料可查看MSDN Libarary DDK:Porting Your Driver to 64-Bit Windows。 所以,要改造应用程序的安装程序。方法是,让32位版的驱动安装为缺省安装选项,即用户插入安装光盘之后,依然运行32位安装程序。但当程序调用UpdateDriverForPlugAndPlayDevices返回值为ERROR_IN_WOW64时,这说明该安装程序正运行在64位Windows环境中。此时,这个安装程序应该调用CreateProcess函数来启动64位的安装进程。这个64位的安装进程通过调用64位驱动目录下的inf文件进行驱动安装。 2.驱动要支持32位IOCTL 某些IOCTL可能包含含有指针的结构,所以,要特别小心的区别对待它,必须根据被调用者解析结构或者输出结构。 有三种办法可以解决这个问题: 1.尽量避免使用IOCTL传递包含有指针的结构; 2.通过API IoIs32bitProcess()来判断上层调用者的程序类型; 3.在64位程序中采用新的IOCTL命令; 例子: IOCTL structure in header file typedef struct _IOCTL_PARAMETERS {

u(boot中NANDflash的MTD驱动移植)-

u(boot中NANDflash的MTD驱动移植)- u-boot u-boot中的“与非”闪存的MTD驱动程序迁移移植了linux中的MTD 驱动程序源代码,以支持“与非”闪存擦除、刻录写入和读取驱动程序内存技术设备内存技术设备是Linux的一个子系统,用于访问闪存设备MTD的主要目的是简化新存储设备的驱动,并提供通用接口功能。MTD驱动可以支持CFI接口的非闪存驱动和非闪存驱动。众所周知,“与非”闪存的访问接口不像“非”闪存那样提供标准的CFI访问接口,但“与非”闪存制造商已经对不同品牌和型号的“与非”闪存芯片的访问接口制定了一些常规规定,如命令字、地址序列、命令序列、坏块标记位置、oob区域格式等。 值得注意的是,在工艺方面有两种类型的“与非”闪存:MLC和SLCMLC和SLC属于两种不同类型的NAND闪存SLC的全称是单级单元,即单级单元闪存,而MLC的全称是多级单元,即多级单元闪存。它们的区别在于,SLC的每个单元只能存储一位数据,而MLC 的每个单元只能存储两位数据,MLC的数据密度是SLC的两倍。就页容量而言,还有两种类型的与非:大页与非闪存(例如HY27UF082G2B)和小页与非闪存(例如K9F1G08U0A)这两种类型在页面容量、命令序列、地址序列、页面内访问和坏块识别方面非常不同,并且遵循不同的约定,因此在移植驱动程序时应该特别注意。在下,以大页面NAND flash: HY27UF082G2B为例,介绍NAND flash 的一些基本情况,然后介绍MTD驱动程序的基本结构和流程分析。

最后,介绍了在u-boot中迁移MTD驱动程序的详细步骤: 3 . 4 . 1)nandflash的一些基本信息 fl2400开发板上的NAND Flash芯片型号是现代HY27UF082G2B。英特尔于1988年首次开发了或非闪存技术。它最重要的特点是支持片上执行,彻底改变了EPROM和EEPROM主宰非易失性闪存世界的局面。然后,在1989年,东芝发布了NAND闪存结构,它具有较低的单位成本、较高的容量,并且可以像磁盘一样通过接口轻松升级。“或非”闪存更适合存储少量的关键代码和数据,而“与非”闪存更适合存储大量的高密度数据。 下表说明了非闪存与非闪存的区别:非闪存非闪存性能项目的容量通常为1~4MB,片上支持的最大容量为32MB 8MB~512MB。它可以直接在芯片上启动。它不受支持,需要驱动读取。只有三星芯片支持步进式引导加载器技术,其他芯片必须配备norflash以启动具有较高可靠性、较低位反转概率、常见位反转的引导加载器,并且必须采取验证措施。ECC椭圆曲线算法被推荐用于错误检查和恢复,这导致1/10的非闪存使得非闪存的管理和驱动程序写入更加复杂。存取接口与随机存取存储器和可编程只读存储器相同。地址线地址、数据和命令通过每个使能引脚区和输入/输出线与数据线分开。访问接口可分为地址、数据和命令以及串行访问。随机存取8K-64K块大小(擦除64K~128K单位)必须按顺序存取。擦除时间为5S,慢3毫秒,快速读写速度慢。快速读取,快速读取,刻录和写入可以快速擦除10 ~ 100,000次和100 ~ 100万次。主要用途保存代码和关键数据保存大

USB驱动移植教程

USB驱动移植教程 一.USB驱动框架 在Linux系统中,提供了主机侧和设备侧视角的USB驱动框架,这里,仅仅讲解主机侧角度看到的USB驱动框架。 从主机侧的角度而言,需要编写的USB驱动程序包括主机控制器驱动和设备驱动两类。USB主机控制器驱动程序控 制插入其中的USB设备,而USB设备驱动程序控制该设备如何作为设备与主机通信。在USB主机控制器驱动和USB 设备驱动之间还有一层叫USB核心层。USB核心负责USB驱动管理和协议处理工作,它通过定义一些数据结构、宏 和功能函数,向上为USB设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;通过全局变量维护整个 系统的USB设备信息,完成设备热插拔控制、总线数据传输控制等。说了那么多,无图无真相啊~~

Linux USB主机侧驱动总体框架 二.USB驱动移植步骤 1.S5PV210主机控制驱动的移植 USB主机控制器有3种规范,UHCI(Universal Host Controller Interface),这种规范主要是Intel、Via芯片公司提供支 持PC主板的;OHCI(Open Host Controller Interface),这种规范是微软提出来的,主要应用在非PC系统上的嵌入式 领域上的USB芯片;EHCI(Enhanced Host Controller Interface),这种后来为提高USB速度而提出的规范,它支持 最高速度为480Mbps。 在《S5PV210_UM_REV1.1》手册上搜索OHCI关键词,会发现下面一段话 这表明S5PV210这款CPU支持一个USB主机接口,同时支持EHCI和OHCI这两种规范,支持USB1.1和USB2.0规范,支持最高的外设传输速率为480Mbps。注意了,它并不支持USB3.0规范的USB设备,所以做测试的时候,千万不要拿USB3.0规范的USB设备去测试。 2.1移植ohci-s5p驱动 打开内核目录:driversusbhost,发现Linux系统提供了大量的主机控制器驱动,找遍所有平台,都没有找到ohci-s5p.c源码。很遗憾,3.8的内核没有提供S5PV210的USB HOST控制器驱动程序。最好验证有没有提供的办法就是, 烧写网蜂提供的第二版的uImage进去,然后找个U盘、或者鼠标插入Webee210开发板的USB HOST接口,看看串 口有没有打印什么信息,结果是不会有任何反应的。既然没有提供,这就需要我们自己来编写了,这下不好办了吧?

S3C2410 下LCD 驱动程序移植及GUI 程序编写

S3C2410下LCD驱动程序移植 及GUI程序编写 Write by llg 著作权所有:刘利国 如转载请告知作者 laoliu@https://www.doczj.com/doc/8a4171973.html, 并注明出处 https://www.doczj.com/doc/8a4171973.html, 1.为了不让大家觉枯燥,让朋友们更好的理解,我以一个实例来叙述S3C2410下一个驱动 程序的编写(本文的初始化源码以华恒公司提供的s3c2410fb.c为基础)及简单的GUI 程序的编写。 2.拿到一块LCD,首先要将LCD的各个控制线与S3C2410的LCD控制信号相接,当然, 电源也一定要接入了,否则不亮可别找我。另外需要注意以下几点: 1)背光:对于大部分的彩色LCD一定要接背光,我们才能看到屏上的内容; 2)控制信号:不同的LCD厂商对于控制信号有不同的叫法,S3C2410芯片手册也给出了一个信号的多个名称(图一),这就要看你们硬件工程师的功底了, 图一 S3C2410手册上给出的控制信号的名称及解释 这里我做一个简单的介绍: ?VFRAME:LCD控制器和LCD驱动器之间的帧同步信号。该信号告诉LCD 屏的新的一帧开始了。LCD控制器在一个完整帧显示完成后立即插入一个 VFRAME信号,开始新一帧的显示; ?VLINE:LCD控制器和LCD驱动器之间的线同步脉冲信号,该信号用于LCD 驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。LCD控制器在 整个水平线(整行)数据移入LCD驱动器后,插入一个VLINE信号; ?VCLK:LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样; ?VM:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示或熄灭。VM信号可以与每个帧同步,也可以与 可变数量的VLINE信号同步。 3)数据线:也就是我们说的RGB信号线,S3C2410芯片手册上都有详细的说明,由于篇幅关系,在此不一一摘录,不过需要与硬件工程是配合的是他采用了哪种接线 方法,24位16位或其它。对于16位TFT屏又有两种方式,在写驱动前你要清楚

RTOS设备驱动向嵌人式Linux的移植

RTOS设备驱动向嵌人式Linux的移植 ——By Bill Weinberg,MontaVista Software,Inc. Linux暴风雨般占领了嵌入式系统市场。分析家指出,大约有1/3到1/2的32/64位新的嵌入式系统设计采用了Linux。嵌入式Linux已经在很多应用领域显示出优势,比如SOHO家庭网络和成像/多功能外设。在(NAS/SAN)存储,家庭数字娱乐(HDTV/PVR/DVR/STB),和手持设备/无线设备,特别是数字移动电话更获得大幅度发展。 嵌入式Linux新应用不会凭空从开发者的头脑中冒出来,大部分项目都是由成千上万行,甚至数百万行的代码组成。成千上百的嵌入式项目已经成功地将现有的其它平台的代码移植到Linux下,比如Wind River VxWorks和pSOS,VRTX,Nucleus和其它RTOS。这些移植工作有着重要的价值和现实意义。 到目前为止,大多数关于移植已有的RTOS应用到嵌入式Linux的文献,关注RTOS接口(API)、任务、调度模式以及怎样将他们映射到相应得用户空间去。同样重要的是,在I/O调用密集的嵌入式程序中如何将RTOS的硬件接口代码移植到更加规范的Linux设备驱动程序中去。 本文将概述几种常用的经常出现于现有嵌入式应用中的内存映射I/O方法。它们涵盖的范围从对中断服务例程的特殊使用及用户线程对硬件访问到出现于有些ROTS中的半规范化驱动程序模型。这对于移植RTOS代码到规范化的Linux设备启动程序具有一定启发作用,并且介绍了一些移植方法。特别地,本文会重点讨论RTOS和Linux中的内存映射,基于I/O调度队列的移植,将RTOS I/O重定义到Linux下的驱动程序和守护进程里。 RTOS I/O概念 “不规范”是描述大多数RTOS系统I/O的最佳词语。多数RTOS是针对较早的无MMU的CPU 而设计,所以忽略了内存管理部分,即使当MMU问世后也是这样:不区分物理地址和逻辑地址。大多数RTOS还全部运行在特权模式,虽然表面上看来是增强了性能。全部的RTOS应用和系统代码都能够访问整个地址空间、内存映射过的设备、以及其他I/O操作。这样,即使存在差别,也是很难把RTOS应用程序代码同驱动程序代码区分开来。 不规范的结构导致了I/O实现的特殊性。在很多情况下,缺乏设备驱动程序模型的认同。根据这种无层次的特性,回顾一下基于RTOS软件中使用的一些重要概念和习惯用法非常有指导意义。 内嵌的内存访问 上个世纪八十年代中期商业化的RTOS产品中,多数嵌入式软件都有一个对执行时间有严格需求的,采用I/O查询和中断服务例程的大循环。开发人员在项目采用RTOS和执行程序,主要为了加强并行性和多任务同步,绕开其它有碍实现该目标的程序结构。这样,即使RTOS提供了I/O调用形式化方法,嵌入式程序员继续使用直接的I/O操作: 1#define DATA_REGISTER0xF00000F5

RT-Thread驱动移植要点及AT25256驱动

RT-Thread 驱动移植要点 I/O管理模块为应用提供了一个对设备进行访问的通用接口,并通过定义的数据结构对设备驱动程序和设备信息进行管理。从系统整体位置来说I/O管理模块相当于设备驱动程序和上层应用之间的一个中间层。I/O管理模块实现了对设备驱动程序的封装:设备驱动程序的实现与I/O管理模块独立,提高了模块的可移植性。应用程序通过I/O管理模块提供的标准接口访问底层设备,设备驱动程序的升级不会对上层应用产生影响。这种方式使得与设备的硬件操作相关的代码与应用相隔离,双方只需各自关注自己的功能,这降低了代码的复杂性,提高了系统的可靠性。在RT-Thread中,设备也被认为是一类对象,被纳入对象管理器范畴。每个设备对象都是由基对象派生而来,每个具体设备都可以继承其父类对象的属性,并派生出其私有属性。下图即为设备对象的继承和派生关系示意图。 设备对象的继承和派生关系示意图 1. I/O设备管理控制块 struct rt device { struct rt object parent; /* 设备类型*/ enum rt device class type type; /* 设备参数及打开时参数*/ rt_uint16_t flag, open flag; /* 设备回调接口*/ rt_err_t (*rx indicate)(rt_device_t dev, rt_size_t size); rt_err_t (*tx complete)(rt_device_t dev, void* buffer); /* 设备公共接口*/ rt_err_t (*init) (rt_device_t dev); rt_err_t (*open) (rt_device_t dev, rt_uint16_t oflag); rt_err_t (*close) (rt_device_t dev); rt_size_t (*read) (rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size); rt_size_t (*write) (rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size); rt_err_t (*control)(rt_device_t dev, rt_uint8_t cmd, void *args); #ifdef RT_USING_DEVICE_SUSPEND rt_err_t (*suspend) (rt_device_t dev); rt_err_t (*resumed) (rt_device_t dev);

动态加载驱动和Linux内核移植

项目三:Linux内核移植 1.能力培养目标 ●了解嵌入式Linux内核的构成 ●掌握内核裁减定制的方法 ●掌握内核编译的方法 ●掌握内核烧写的方法 2.项目任务要求 (1)项目任务 Linux内核的裁剪、编译和烧写。 (2)项目来源及应用 对于较复杂的嵌入式系统项目,当硬件平台制作好之后,就需要向其移植操作系统,如果移植的是嵌入式Linux且为GUI应用,那么移植过程一般包含: 第一步,移植引导程序(Vivi、BLOB、uBoot等); 第二步,移植内核kernel;(本次实验内容) 第三步,移植根文件系统; 第四步,移植库文件,如QT库; 第五步,运行项目程序。 (3)功能需求 裁减一个可用的Linux内核 ●选择正确的处理器类型 ●使其支持网卡、小键盘、USB鼠标、声卡等设备 ●成功编译后烧写到目标机上 ●内核能正确加载运行 ●键盘驱动可用 (4)项目开发环境需求

3.项目预习 (1)了解项目目标、项目任务要求、项目设计和项目实施步骤。 (2)下载本次实验所需要的软件和代码。将3_kbd_test目录放到linux虚拟机的up-techpxa270cl目录下。 (3)完成内核裁剪及编译好内核映像,即完成第5大项中的步骤(4)-(5)。 (4)回答以下问题 如何能够在目标机上访问宿主机上的文件? 说明使用mount命令进行文件挂载的方法。 说明mount命令执行不成功可能的原因和解决方法。 说明本实验所使用的Linux内核版本。 说明Linux内核裁减定制的方法。 4.项目设计 4.1选择Linux内核裁减方法 Linux内核的裁减配置的三种命令: 1、make config:命令行模式,一行一行的配置,不推荐使用。 2、make menuconfig:大多人熟悉的menuconfig菜单。 3、make xconfig:基于QT图形化配置,菜单结构清晰。 所有内核裁减配置过程,都是通过Config.in(2.4内核)或Kconfig(2.6内核)经由不同脚本解释器产生.config配置文件。

linux视频驱动移植

V4L2视频驱动的移植与应用 V4L2(video for linux) 可以支持多种设备,它可以有以下5种接口: 1、视频采集接口(video capture interface):这种应用的设备可以是高频头或者摄像头.V4L2的最初设计就是应用于这种功能的.下面也是着重讲解这种应用; 2、视频输出接口(video output interface):可以驱动计算机的外围视频图像设备——像可以输出电视信号格式的设备; 3、直接传输视频接口(video overlay interface):它的主要工作是把从视频采集设备采集过来的信号直接输出到输出设备之上,而不用经过系统的CPU; 4、视频间隔消隐信号接口(VBI interface):它可以使应用可以访问传输消隐期的视频信号; 5、收音机接口(radio interface):可用来处理从AM或FM高频头设备接收来的音频流; V4L2驱动的主要功能是使程序有发现设备的能力和操作设备.它主要是用过一系列的回调函数来实现这些功能.像设置高频头的频率,帧频,视频压缩格式和图像像参数等等. 一、V4L2的移植 V4L2提供了三种不同的API来传输外围设备和用户空间的数据。下面就vivi(drivers/media/video/vivi.c)来讲解一个V4L2驱动的编写。注意它是一个虚拟的设备驱动,没有与实际的硬件打交道。 1、分析几个重要数据结构: vivi.c包含头文件v4l2-device.h和v4l2-ioctl.h,其中v4l2-device.h中包含了v4l2-subdev.h,v4l2-subdev.h中又包含了v4l2-common.h,v4l2-common.h中包含了v4l2-dev.h。 在v4l2-dev.h中定义了结构体video_device和v4l2_file_operations; 在v4l2-ioctl.h中定义了结构体v4l2_ioctl_ops; 在v4l2-device.h中定义了结构体v4l2_device; 1) vivi_fops static const struct v4l2_file_operations vivi_fops = { .owner = THIS_MODULE, .open = vivi_open, .release = vivi_close, .read = vivi_read, .poll = vivi_poll, .ioctl = video_ioctl2, /* V4L2 ioctl handler */ .mmap = vivi_mmap, }; 2) vivi_ioctl_ops static const struct v4l2_ioctl_ops vivi_ioctl_ops = { .vidioc_querycap = vidioc_querycap, .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, .vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,

RTL8188CUS驱动程序移植笔记

RTL8188CUS驱动程序ARM9移植笔记 移植背景 本人于2015年入手一块周公的AWorks Easy ARM开发板,这块开发板主控为IMX293 ARM9内核,使用的操作系统为Linux 2.35。前段时间入手了一块全志H3的板子,这个板子带有WiFi网卡,可惜到手时官方并没有完成驱动程序的移植。由于使用的网卡为RTL8189FTV,该芯片的驱动程序源码在网上怎么都找不到,折腾了几天未果,就从X宝上买了块USB无线网卡,主控为RTL8188CUS,之所以买这块网卡是因为官网有这块网卡的驱动,并且我在本机Ubuntu15.04系统中找到了该网卡的内核模块,所以我相信不管怎么样,它都是可以在linux系统下驱动起来的。 在折腾了两天,各种摸索的情况下终于把这块网卡在ARM9的板子上驱动起来了。下面就我这次移植过程做个笔记,其中也包括近期的学习总结 WiFi模块

系统内核配置 内核只能编译一次,内核模块要单独编译,否则版本字符串两者配不上就导致内核模块加载不成功。 源码的配置 驱动程序测试 1)通过网线连接至计算机,把计算机与开发板的IP地址设置为同一个网段 计算机IP地址:192.168.1.12 开发板IP地址:192.168.1.100 2)开发板与计算机直接通过NFS连接并把驱动模块拷贝到开发板 3)加载内核模块

出现如下如下信息则加载成功 rtw_macaddr_cfg MAC Address = 00:13:ef:60:06:19 bDriverStopped:1, bSurpriseRemoved:0, bup:0, hw_init_completed:0 _rtw_drv_register_netdev, MAC Address (if1) = 00:13:ef:60:06:19 usbcore: registered new interface driver rtl8192cu 4)查看我们的USB无线网卡是否被系统激活 执行:ifconfig 发现只有一个网卡,并没有出现我们的USB无线网卡。 执行:ifconfig -a 出现了wlan0 就是我们的无线网卡,接下来激活它。 执行:ifconfig wlan0 up 执行:ifconfig可以看到无线网卡已经被激活了。 5)扫描AP热点 执行:iwlist wlan0 scan | grep ESSID

UART串口驱动程序移植

UART串口驱动程序移植 仇洁婷,陈儒军 在嵌入式控制系统采集站的设计方案中,需要用到AT91RM9200的5个UART 串口,就会涉及到多个中断的优先级分配问题,而且也可能造成串行通信的中断不能及时响应,从而造成数据丢失。在Linux2.6.21内核中,UART驱动程序成功地解决了这个问题,它采用了DMA传输的串行通信方式。DMA(Direct Memory Access)是一种高速的数据传输操作,在外部设备和存储器之间直接读/写数据,提高了通信的可靠性。 Linux对串口驱动支持很完善,具有统一的编程接口。包含3层:tty核心、tty线路规范和tty驱动。tty核心层向上提供统一的访问接口,使得用户不必关注具体终端的类型。tty线路规范指定数据交互的形式。tty驱动层用来操作硬件。一般只需针对不同的串口功能在tty驱动层中添加相应的配置宏即可。本系统将Linux-2.6.21打上at91rm9200dk体系结构的补丁后,基本上就能够使用UART设备驱动。 根据本系统的硬件设计要求,还需进行如下修改: 一、注册串口次设备号 在Linux2.6内核中,就只引出了2个串口的驱动注册信息,需要增加其他3个串口。可以在linux2.6.21/arch/mach-at91/board-dk.c文件中只定义了DEBUG UART和UART1,因此要改为 .nr_tty = 5, .tty_map = { 4, 0, 1, 2, 3 } UART0、UART1、UART2、UART3和Debug UART这些串行端口和设备名称、 在本方案中,需要用到UART0和UART2串口的时钟信号SCK,但是在 Linux2.6内核的串口驱动程序中,并没有引出UART0~UART3所带有的时钟信号,所以需要进行修改。 二、注册时钟信号SCK引脚 在AT91RM9200芯片的定义中,UART0和UART2串口的时钟信号SCK分别是PA19和PA24管脚中的外设A功能,因此,需要用at91_set_A_periph函数把PA19和PA24引脚赋予Periph A。 在linux-2.6.21\arch\arm\mach-at91\at91rm9200_devices.c文件中 的configure_ usart0_pins和configure_usart2_pins函数中增加: at91_set_A_periph(AT91_PIN_PA19, 0);

实验四、设备驱动移植

实验内容三—设备驱动移植 一、实验目的 (1)了解LCD显示原理及其与S3C2410的接口 (2)了解S3C2410的LCD控制器 (3)掌握基于帧缓冲设备的LCD驱动程序结构及移植过程 二、实验内容 在上次实验的基础上,通过修改内核显示相关文件,达到驱动LCD显示屏的目的。三、实验步骤 (1)实验准备 从网上下载Linux的最新版本,解压后可以看到它的全部源代码,我们这里以linux-2.6.24为例,实现Linux的内核移植。 (2)修改顶层Makefile 在顶层Makefile中先要定义交叉编译器,这里就使用我们第一次实验中构建的交叉编译器。查找ARCH,在193行左右修改确认ARCH和CROSS_COMPILE的值 如果学生机上没有交叉编译环境,先从教师机上下载交叉编译环境 为了方便使用arm-linux-gcc,我们可以把它所在的目录添加到环境变量中 在export PATH前面加上 这样一句,以后启动就可以直接使用arm-linux-gcc了。 要使环境变量立马生效,可以使用下面的命令。 (3)设置Nand Flash分区信息表 设置Nand Flash的分区信息表是为内核启动以后加载文件系统用的,可以将Nand Flash看成我们PC机的硬盘,对Nand Flash的分区看成是对硬盘的分区,硬盘可以分成C 盘,D盘之类,而Nand Flash则可以分成很多块,每块有不同的名字、大小和用途。下面是对Super-ARM实验箱的Nand Flash进行分区的情况(参考表5-1-1): ?第0块命名为"uboot",它用来存放u-boot.bin映像,起始地址是Nand Flash的0x000000,最大0x30000个字节; ?第1块命名为"kernel",用来存放内核,起始地址是Nand Flash的0x30000,最大0x1D0000个字节;

相关主题
文本预览
相关文档 最新文档