PCI驱动开发手册

PCI驱动开发手册
PCI驱动开发手册

Linux2.6内核PCI驱动程序开发

一,PCI相关数据结构说明

1.1struct pci_driver

这个数据结构在文件/linux/pci.h里,这是Linux内核版本2.4之后为新型的PCI设备驱动程序所添加的,其中最主要的是用于识别设备的id_table结构,以及用于检测设备的函数probe( )和卸载设备的函数remove( )。

struct pci_driver {

struct list_head node;

char *name;

const struct pci_device_id *id_table;

int (*probe) (struct pci_dev *dev, const struct pci_device_id *id);

void (*remove) (struct pci_dev *dev);

int (*save_state) (struct pci_dev *dev, u32 state);

int (*suspend)(struct pci_dev *dev, u32 state);

int (*resume) (struct pci_dev *dev);

int (*enable_wake) (struct pci_dev *dev, u32 state, int enable);

};

为创建一个正确的struct pci_driver 结构, 只有4个字段需要被初始化:name,id_table,probe和remove。

其中id_table初始化可以用到宏PCI_DEVICE(VENDOR_ID,DEVICE_ID),VENDOR_ID 和DEVICE_ID分别为设备和厂商编号,由板卡生产厂家指定。

Static const struct pci_device_id mypci[] =

{

{

PCI_DEVICE(VENDOR_ID,DEVICE_ID)

},

{}

};

1.2pci_dev

这个数据结构也在文件include/linux/pci.h里,它详细描述了一个PCI设备几乎所有的硬件信息,包括厂商ID、设备ID、各种资源等。可以根据需要使用其中的数据成员。struct pci_dev {

struct list_head global_list;

struct list_head bus_list;

struct pci_bus *bus;

struct pci_bus *subordinate;

void *sysdata;

struct proc_dir_entry *procent;

unsigned int devfn;

unsigned short vendor;

unsigned short device;

unsigned short subsystem_vendor;

unsigned short subsystem_device;

unsigned int class;

u8 hdr_type;

u8 rom_base_reg;

struct pci_driver *driver;

void *driver_data;

u64 dma_mask;

u32 current_state;

unsigned short vendor_compatible[DEVICE_COUNT_COMPATIBLE];

unsigned short device_compatible[DEVICE_COUNT_COMPA TIBLE];

unsigned int irq;

struct resource resource[DEVICE_COUNT_RESOURCE];

struct resource dma_resource[DEVICE_COUNT_DMA];

struct resource irq_resource[DEVICE_COUNT_IRQ];

char name[80];

char slot_name[8];

int active;

int ro;

unsigned short regs;

int (*prepare)(struct pci_dev *dev);

int (*activate)(struct pci_dev *dev);

int (*deactivate)(struct pci_dev *dev);

};

二,PCI驱动基本框架

在用模块方式实现PCI设备驱动程序时,通常至少要实现以下几个部分:初始化设备模块、设备打开模块、数据读写和控制模块、中断处理模块、设备释放模块、设备卸载模块。下面给出一个典型的PCI设备驱动程序的基本框架。

/* 指明该驱动程序适用于哪一些PCI设备*/

static struct pci_device_id demo_pci_tbl [] __initdata = {

{PCI_VENDOR_ID_DEMO, PCI_DEVICE_ID_DEMO,

PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEMO},

{0,}

};

/* 对特定PCI设备进行描述的数据结构*/

struct demo_card {

unsigned int magic;

/* 使用链表保存所有同类的PCI设备*/

struct demo_card *next;

/* ... */

}

/* 中断处理模块*/

static void demo_interrupt(int irq, void *dev_id, struct pt_regs *regs)

{

/* ... */

}

/* 设备模块信息*/

static struct pci_driver demo_pci_driver = {

name: demo_MODULE_NAME, /* 设备模块名称*/

id_table: demo_pci_tbl, /* 能够驱动的设备列表*/

probe: demo_probe, /* 查找并初始化设备*/

remove: demo_remove /* 卸载设备模块*/

/* ... */

};

static int __init demo_init_module (void)

{

pci_register_driver(&demo_pci_driver);

}

static void __exit demo_cleanup_module (void)

{

pci_unregister_driver(&demo_pci_driver);

}

/* 加载驱动程序模块入口*/

module_init(demo_init_module);

/* 卸载驱动程序模块入口*/

module_exit(demo_cleanup_module);

三,PCI设备操作实现

3.1设备初始化

在demo_init_module 中,用pci_register_driver( )函数来注册PCI设备的驱动程序,此时需要提供一个pci_driver结构,在该结构中给出的probe探测例程将负责完成对硬件的检测工作。

在probe函数中,需要实现以下几个功能:

(1)使能PCI

在PCI 驱动的探测函数中, 在驱动可存取PCI 设备的任何设备资源(I/O 区或者中断)之前,

驱动必须调用pci_enable_device 函数:

int pci_enable_device(struct pci_dev *dev);

这个函数实际上使能设备. 它唤醒设备以及在某些情况下也分配它的中断线和I/O 区. 例如, 这发生在CardBus 设备上(它在驱动层次上已经完全和PCI 等同了).

(2)请求PCI资源

在初始化中很重要的一个操作就是让系统为PCI分配资源,如I/O端口等。

pci_resource_regions(struct pci_dev *dev, char * name);

(3)存取配置空间

因为微处理器无法直接存取配置空间, 计算机供应商不得不提供一个方法来完成它. 为存取配置空间, CPU 必须写和读PCI 控制器中的寄存器, 但是确切的实现是依赖于供应商的, 并且和这个讨论无关, 因为Linux提供了一个标准接口来存取配置空间.

对于驱动, 配置空间可通过8-位, 16-位, 或者32-位数据传输来存取. 相关的函数原型定义于:

int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val);

int pci_read_config_word(struct pci_dev *dev, int where, u16 *val);

int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val);

从由dev 所标识出的设备的配置空间读 1 个, 2 个或者4 个字节. where 参数是从配置空间开始的字节偏移. 从配置空间取得的值通过val 指针返回, 并且这个函数的返回值是一个错误码. word 和dword 函数转换刚刚读的值从小端到处理器的本地字节序, 因此你不必处理字节序.

int pci_write_config_byte(struct pci_dev *dev, int where, u8 val);

int pci_write_config_word(struct pci_dev *dev, int where, u16 val);

int pci_write_config_dword(struct pci_dev *dev, int where, u32 val);

(4)映射I/O 和内存空间

每个PCI可以有1-6个I/O或者内存空间,并且每块空间都有一个BAR寄存器与其空间首地址想对应。BAR0-6寄存器的最后一位为只读,为1则说明该空间为I/O,否则为MEM。

下面以BAR0为例介绍如何映射空间到虚拟内存,以便用户访问。

LocalAddr0 = pci_resource_start(dev,0);

//得到BAR0区域的开始地址

Map0 = (unsigned char *)ioremap(LocalAddr0, pci_resource_len(dev,0));

//将BAR0区域影射到内存虚拟地址

如果ioremap函数出现问题,可以尝试ioport_map和pci_iomap。这样以后就可以针对Map0进行读写,而忽略具体硬件是I/O或是MEM的细节。

(5)注册中断

int request_irq( unsigned int irq,

irqreturn_t (*handler)(int, void *, struct pt_regs *),

unsigned long flags,

const char *dev_name,

void *dev_id);

从request_irq 返回给请求函数的返回值或者是0 指示成功, 或者是一个负的错误码, 如同平常. 函数返回-EBUSY 来指示另一个驱动已经使用请求的中断线是不寻常的.

3.2数据读写

使用在初始化过程中影射后的虚拟内存地址(Map0)进行读写,并转换到用户空间,最后传给应用程序。可以使用以下读写函数:

unsigned int ioread8(void *addr);

unsigned int ioread16(void *addr);

unsigned int ioread32(void *addr);

这里, addr 应当是从ioremap 获得的地址(也许与一个整型偏移); 返回值是从给定I/O 内存读取的.有类似的一系列函数来写I/O 内存:

void iowrite8(u8 value, void *addr);

void iowrite16(u16 value, void *addr);

void iowrite32(u32 value, void *addr);

你可以使用这些函数的重复版本,

void ioread8_rep(void *addr, void *buf, unsigned long count);

void ioread16_rep(void *addr, void *buf, unsigned long count);

void ioread32_rep(void *addr, void *buf, unsigned long count);

void iowrite8_rep(void *addr, const void *buf, unsigned long count);

void iowrite16_rep(void *addr, const void *buf, unsigned long count);

void iowrite32_rep(void *addr, const void *buf, unsigned long count);

这些函数读或写从给定的buf 到给定的addr共count 次.

需要操作一块I/O 地址, 你可使用下列之一:

void memset_io(void *addr, u8 value, unsigned int count);

void memcpy_fromio(void *dest, void *source, unsigned int count);

void memcpy_toio(void *dest, void *source, unsigned int count);

3.3中断处理

PC的中断资源比较有限,只有0~15的中断号,因此大部分外部设备都是以共享的形式申请中断号的。当中断发生的时候,中断处理程序首先负责对中断进行识别,然后再做进一步的处理。

irqreturn_t short_interrupt(int irq, void *dev, struct pt_regs *regs);

在该函数中实现中断服务,每次硬件检测到中断,都会调用该函数。

3.4释放设备

释放设备模块主要负责释放对设备的控制权,释放占用的内存和中断等,所做的事情正好与设备初始化相反。

在demo_cleanup_module中卸载PCI驱动:

pci_unregister_driver()

在pci_driver的remove中释放所请求的资源:

iounmap(Map0);

free_irq(int irq,pci_dev *dev)

pci_release_regions(pci_dev *dev)

3.5Makefile文件的编写

PWD = $(shell pwd)

KERNEL_SRC=/usr/src/linux

obj-m :=mypci.o

module_objs := mypci.o

all:

$(MAKE) –C $( KERNEL_SRC) M=$(PWD) modules clean:

rm *.ro

rm *.o

美国混凝土结构建筑规范和注释

这份文件的规范部分包括使用在建筑上的混凝土结构的设计和施工以及在非建筑结构上的适用部位。 其中包括:图纸和施工说明;检验;材料;耐久性要求;混凝土质量,搅拌和浇筑;模板;内置管道;施工缝; 配筋;分析和设计;强度和适用性;弯曲和轴向荷载;剪切和扭转;钢筋的锚固和连接;楼板系统;墙;基础;预制 混凝土;组合受弯构件;预应力混凝土;壳体和折板式构件;现有结构的强度评估;抗震设计;结构素混凝土;支撑 和联系模型(附录A);替代设计(附录B);反复荷载和强度折减系数(附录C);和混凝土的锚固(附录D)。 工程使用材料的质量和检验必须参照适当的美国材料与试验协会标准的规格。钢筋的焊接必须参照适当的美国国 家标准协会或美国焊接协会标准。 本规范作为一般建筑规范的参考,而且过去的版本已经在这一方面广泛的使用。本规范是以一种特定的格式写成 的,从而使得它参考的部分无须以规范的语言来描述。因此,这本规范没有包括任何背景的详细描述,执行规范要求 的建议以及规范的目的。而规范的注释部分则是为此目的而服务的。为了强调给出新的或者修订规定的解释,协会对 于规范的一些看法也在注释里有所讨论。而规范中引用的大多数研究数据则是为了广大使用者更详细的学习、参考之 用。同时,其他的一些关于执行规范要求的建议性文件也被引用到规范中。 关键字:外加剂;骨料;锚固(结构的);梁柱框架;横梁(支承);建筑规范 路径名/ 注释 大小压缩后压缩率日期时间属性CRC 方式版本 ------------------------------------------------------------------------------- 美国混凝土结构建筑规范和注释.pdf 3775745 3540989 93% 11-10-07 22:05 .....A 3512804F m3g 2.9 -------------------------------------------------------------------------------

wdm驱动开发之路

WDM驱动开发之路 写在前面:在专栏的前几期中,我们一起初步学习了vxd的开发技术。Vxd技术是很深奥的,不是一篇两篇文章能讲清楚,但你已经入了门,剩下的就要看你的修行了。多看书,多泡论坛(当然是上咱们的驱动开发网论坛了:->),多写程序…我的手不够用了。功到自然成嘛。不过话又说回来,vxd只是权宜之计,WDM才符合当今的潮流(程序员都是时髦人士,君不见先是VB、VC然后是asp、JSP、PHP,数也数不过来呀),Win9x寿终正寝时也就是vxd的末日,你不想随它而去吧(开个玩笑),那就随我来。 按笔者的想法,这篇文章写成连载形式,一次讲一个主题,并且必要时带着例子,让大伙step by step地把WDM驱动弄个透底,不想让大家觉得稀里糊涂,也不想让大家觉得白买杂志了。 今天我们一起讨论第一部分,了解篇。 (一)了解篇 WDM模型(Windows Driver Model)是微软公司为当前主流操作系统Windows98和Windows 2000的驱动程序设计的一种构架。它和传统的win3.x和win95使用的vxd的驱动是完全不同的体系结构。不过对于最终用户来说,WDM驱动程序在Windows98和Windows2000下的表现很相似。作为驱动开发人员来说,它在两者中有很多的不同。并且Windows98中的WDM只能算是Windowss2000中的WDM的一个了集。在Windows98中有一些驱动程序只能使用VXD来实现,如串行通讯驱动等。 要写驱动程序,首先要了解操作系统的结构。在WDM体系中,windows2000操作系统中是最标准的实现方式,Windows98则是部分兼容WDM结构。照微软的说法,Windows98和Windows2000 X86(Intel 架构)版本实现二进制码兼容(参见98DDK),Windows2000 x86版本与其它CPU平台版本实现源码级兼容(因为Windows 2000是基本NT相似的结构,最底层是硬件抽象层HAL,所有我们相信它们之间能源码级兼容)。但实际上,Windows2000的WDM实现中有很多例程在Windows98中没有实现,一旦试图加载这样的WDM驱动程序到Windows98中,则不能正常加载,当然我们也有办法实现它,那就是利用“桩”技术。具体可参见Walter Oney写的《Programming the Microsoft Windows Driver Model》一书。我们首先来看看Windows 2000的系统结构,然后再来看看Windows 98的。 图一是Windows 2000的系统结构图。从图中我们可以看出:整个系统被分为两个态,用户态和核心态。 从图中可以明显看出I/O操作最后是怎样作用到硬件上的。用户态应用程序对Windows 子系统进行win32 API调用,这个调用由系统服务接口作用到I/O管理器(严格地说,在Windows 系统中不存在I/O管理器这样的独立模块,这个只是为了方便叙述而将各种核心功能调用的集合称作I/O管理器,业界人士都这样称呼这个部分),I/O管理器进行必要的参数匹配和操作安全性检查,然后由这个请求构造出合适的IRP(IO Request Package,I/O请求包),并把此IRP传给驱动程序。简单情况下,驱动程序直接执行这个请求包,并与硬件打交道,从而完成I/O请求工作,最后由I/O管理器将执行结果返回给用户态程序。但在WDM体系结构中,大部分实行分层处理。即在图中“设备驱动“这部分,分成了若干层,典型地分成高层驱动程序、中间层驱动程序、底层驱动程序。每层驱动再把I/O请求划分成更简单的请求,以传给更下层的驱动执行。以文件系统驱动为例,最高层驱动只知道文件如何在磁盘上表示,但不知到怎样得到数据。最低层驱动程序只知道怎样从磁盘取出512B为单的数据块,但不知道文件怎样表示。举个更具体的生活例子。主人(最高层驱动)知道(并且需要)笔计本电脑,但不知道具体放在什么位置;而仆人(最底层驱动)却知道它放在具体什么地方,但

浅谈美国规范标准中的钢结构设计

龙源期刊网 https://www.360docs.net/doc/9411179238.html, 浅谈美国规范标准中的钢结构设计 作者:周正为 来源:《装饰装修天地》2018年第11期 摘要:精研美国规范标准,使用STAAD.Pro结构设计软件,结合具体项目,优化钢结构设计,提高设计市场竞争力。 关键词:钢结构;美国规范标准 1 前言 在以往的钢结构设计过程中,一般采用中国建筑科学研究院建筑工程软件研究所研发的PKPM系列CAD软件,包括SATWE计算软件和PMCAD建模软件,基本满足所承担的各类工业和民用建筑中各种规则和复杂类型的框架结构、框排架结构、排架结构、剪力墙、连续梁、拱形结构、桁架结构等。但该软件主要应用于国内市场(国内市场占有率90%以上)。随着近几年海外市场的不断拓展,同国际设计同行的交流不断增多,以美国规范为例,PKPM的模型数据并不能按美标检验杆件,因此急需我们在设计软件等方面实现同步。STAAD.Pro是 由美国世界著名的工程咨询和CAD软件开发公司—REI(Research Engineering International)从上世纪七十年代开始开发的通用有限元结构分析与设计软件,已经在国际上普遍使用,本文通过国外和国内两个具体工程实例,比较美国规范和中国规范中钢结构设计的不同,为今后的海外项目设计提供借鉴。 2 工程概述 国外项目为转接机房,使用STAAD.Pro软件按美国标准进行计算,该构筑物共两层,平面尺寸为15m×12m,高度为15m;开敞结构,多层钢结构厂房。结构按IBC2012设计。场地类别:SE类场地,重要性系数1.25;基本风压49m/s(3秒最大风速),S1=0.186, Ss=0.426, Fa=1.9368,Fv=3.242,反应修正系数(R值)x=2.5,z=2.5; 国内项目同样为转接机房,使用PKPM进行计算,平面尺寸为15.5m×13.5m,高度为14.6m,多层钢结构厂房。该项目的自然条件为抗震设防烈度为7度,基本地震加速度为 0.15g,设计地震分组为第二组;基本风压为0.45kN/m2,场地类别为三类,地面粗糙度为A 类。该工程按照国标进行设计,在该种抗震设防烈度下,钢结构房屋的抗震等级为四级。 3 计算及对比分析 3.1 地震作用

从零开始搭建Linux驱动开发环境

参考: 韦东山视频第10课第一节内核启动流程分析之编译体验 第11课第三节构建根文件系统之busybox 第11课第四节构建根文件系统之构建根文件系统韦东山书籍《嵌入式linux应用开发完全手册》 其他《linux设备驱动程序》第三版 平台: JZ2440、mini2440或TQ2440 交叉网线和miniUSB PC机(windows系统和Vmware下的ubuntu12.04) 一、交叉编译环境的选型 具体的安装交叉编译工具,网上很多资料都有,我的那篇《arm-linux- gcc交叉环境相关知识》也有介绍,这里我只是想提示大家:构建跟文件系统中所用到的lib库一定要是本系统Ubuntu中的交叉编译环境arm-linux- gcc中的。即如果电脑ubuntu中的交叉编译环境为arm-linux-

二、主机、开发板和虚拟机要三者互通 w IP v2.0》一文中有详细的操作步骤,不再赘述。 linux 2.6.22.6_jz2440.patch组合而来,具体操作: 1. 解压缩内核和其补丁包 tar xjvf linux-2.6.22.6.tar.bz2 # 解压内核 tar xjvf linux-2.6.22.6_jz2440.tar.bz2 # 解压补丁

cd linux_2.6.22.6 patch –p1 < ../linux-2.6.22.6_jz2440.patch 3. 配置 在内核目录下执行make 2410_defconfig生成配置菜单,至于怎么配置,《嵌入式linux应用开发完全手册》有详细介绍。 4. 生成uImage make uImage 四、移植busybox 在我们的根文件系统中的/bin和/sbin目录下有各种命令的应用程序,而这些程序在嵌入式系统中都是通过busybox来构建的,每一个命令实际上都是一个指向bu sybox的链接,busybox通过传入的参数来决定进行何种命令操作。 1)配置busybox 解压busybox-1.7.0,然后进入该目录,使用make menuconfig进行配置。这里我们这配置两项 一是在编译选项选择动态库编译,当然你也可以选择静态,不过那样构建的根文件系统会比动态编译的的大。 ->Busybox Settings ->Build Options

美国工业设计的兴起

美国工业设计的兴起 美国工业设计的兴起 自两次世界大战后,设计中心逐渐由欧洲转向了美国。先对二战前的情况进行大致的 分析: 1) 世界大战刺激了美国工业的发展(尤其是军工产品和军需品) 2) 社会局势稳定,国内消费品需求增加 3) 生产的标准化和制度规范化的生产改革(也导致设计职能分工明确) 一.第一代设计师 美国的第一代工业设计师,多以广告、商业美术、工程等行业为出身背景,是似乎与 我国目前设计教育环境颇有几分相似。 a. Raymond Loewy ——当洛维初到美国时,以插画和广告画为生。小有名气后,逐 渐转入工业设计行业。于30年代引领“Streamlining”运动。此人设计作品颇多,曾为 美国总统工业设计顾问,代表作品如可口可乐瓶、“灰狗”公车、“空军一号”内舱等。1951年著有《Never leave well enough alone》一书。 b. Norman.B.Gedds ——喜好 流线型设计以及设计的程序化。早期的设计思想充满理想主义和未来主义的色彩。曾著书《地平线》(1932年)。 c. Walter.Teague ——是最早重视人体工程学因素,从而增加产品安全性和舒适性 的设计师之一。代表作品如柯达135相机(现代35MM相机的原型)、波音707、747内舱等。 d. Henry.Drefuss ——德雷福斯最大的贡献便是奠定了Ergonomics(人体工程学)学科的发展,并著书《Design for people》(1955)和《The measure of man》(1960)。 德雷福斯一生都和Bell公司有着密切的联系,强调“from the inside out”(有内而外)的设计原则。 e. Harley.Earl —— 1927在通用汽车公司总裁 Afred.Sloon领导下,厄尔成为世 界第一个企业设计部,即汽车色彩设计部主任。后又与Sloon提出著名的“有计划废止制度”(planned obsolescence),即有关于汽车有计划更换部件计划,2年一小改,4年 一大改,用新样式替换旧样式的促销手段。厄尔对于汽车工业贡献巨大,他于1919发明 了泥塑模型设计车身的技术。后于50年代发明了弧形整体挡风玻璃。 (美国工业设计专职化的两种方式:一是自由设计师,如洛维;二是企业设计部,如 厄尔,这一职能分化模式一直沿用至今。) 二. 二战后现代主义设计的发展——国际主义(建筑学意义)背景:

行为驱动开发

行为驱动开发 行为驱动开发(简称BDD)是测试驱动开发的升级版。它是一套软件工程实践方法,能帮助研发团队更快地构建和交付更有价值和更高质量的软件产品。采用BDD思想编写的测试读起来更像规格说明书而不是单元测试,所以它是使用测试作为表达和验证行为的一种手段。基于这个特性,BDD也非常适合应用在需求分析中。 一、行为驱动开发的原则 1.聚焦交付业务价值。使用验收标准作为目标,帮助业务实现更实际的可交付的功能。 2.团队共同确定交付标准。业务分析人员,开发人员,测试人员与最终用户一起定义和指定功能。 3.拥抱变化。项目开始时不锁定需求,而是假设需求,从用户那里得到早期的反馈,对需求的理解将在项目的整个生命周期中演进和变更。 4.不仅仅编写自动化测试,而是编写可执行规范和底层规范。团队将验收标准转换为自动化的验收测试,更准确地说是转换为可执行规范。在编写任何代码之前,开发人员将考虑代码实际上应该做什么,并将其表示为底层的可执行规范。可执行规范是一种自动化测试,它演示和验证应用程序如何交付特定的业务需求。自动化测试作为构建过程的一部分运行,并在对应用程序进行更改时运行,进行验收测试和回归测试。 5.交付活文档,并使用活文档来支持后续维护工作。在项目结束后持续维护项目可执行规范。 二、行为驱动开发的优势 1.专注业务目标,避免工程师把工作量浪费在不提供业务价值的功能上,能够降低成本,减少浪费。

2.完整的可执行规范,可充当开发人员的辅助技术文档,更容易理解现有的代码库并进行更改。 3.全面的自动化验收测试和回归测试,不仅可以提升执行效率,也能降低手工测试的出错率,使得迭代速度更快更可靠。 三、行为驱动开发的缺陷 1. 需要多个角色高度参与和协作,涉众如果不愿意或不能参与对话和协作,或者等到项目结束后才给出反馈,就很难充分利用BDD的优点。 2.比较适用于敏捷开发,但不太适用于瀑布式开发。 3.对参与角色能力要求很高,尤其是测试团队,不仅需要精通业务,对业务目标清晰,而且对测试技术能力要求更高,如果编写的自动化测试很烂,会导致更高的测试维护成本。

北欧设计予中国当代设计影响

北欧设计予中国当代设计影响 地处北欧的斯堪的纳维亚国家(包括芬兰、挪威、瑞典、丹 麦、冰岛五国),地理位置独特,民族文化艺术传统悠久,在艺术设计领域至今一直保持着自己的艺术特色、设计的文化品质和艺术精神。在20世纪晚期,其设计艺术越来越引起世人的注意,同时也不断地得到世界的认可,成为影响当代设计艺术的一股重要力量。 北欧设计在20世纪成为风靡全球的设计风格,对中国的设计界也产生了巨大的影响。北欧设计之所以能备受世人瞩目,这与北欧设计的人性化,功能化,民主化是分不开的,也与其崇尚简约风格和绿色设计理念有很大关系。时下很多设计往往过于追求风格和形式,而忽略设计的真正意图和最终目的,导致资源的巨大浪费和设计上的千篇一律,缺乏内涵和肤浅的设计大量充斥市场;另有一些设计一味追求照搬国外的设计形式,遗弃了自己民族的传统文化元素和特色。北欧各国的优秀现代设计文化的成因、得失对我国较具针对性,因为我国与当初的北欧一样面临着人均资源短缺、民族文化传统中对自然因素的欣赏以及均有强烈而极具本民族特色的文化及审美特质。 高科技的迅猛发展,正逐步改变着人类生产生活的方方面面,它在展示人类伟大的征服力量和无与伦比的聪明才智的同时,也带给人新的苦恼和忧虑,那便是人情的孤独、疏远和感情的失衡。.

现代社会导致人文因素失落的原因有很多,其中主要有:工具理性的泛滥、科技崇拜的盛行、商品经济的发展、大众化社会的形成、快节奏高效率的时代特点等。产品中人文因素的失落造成了冷漠、无人情味的、理性的、道德败落的社会局面。 随着现代社会人们对“补偿性高情感”要求越来越强烈,未来设计中设计伦理学必将越来越受到重视。作为设计和造物的道德哲学,它在表层上涉及以人为本、环境与发展诸问题;在深层上,其表述涉及设计意志的合理性、人作为目的自身的无限价值与设计价值以及设计的自律诸问题。 如果说北欧设计以诗一般的形式美来消除当今社会上不自然的成分的话,那么,北欧的人文功能主义无疑是把对人类人生价值和意义的关怀和思考以实物的形式表现出来,并通过这种优质的设计给人以思考甚至反思的空间。 二十一世纪是“非物质”世纪也是情感世纪。现在国际社会最前沿的设计理论都在宣扬设计的非物质性和情感性、艺术性。从强调物质实用性转向强调易用性和情感性;从强调功能性转向强调生活体验性和文化性;从强调全球性转向强调本土性;强调生活实在性转向强调生活艺术性;从急功近利的商业性转向关注整个生存环境的可持续发展性是未来社会对设计工作者提出的 要求,而北欧设计既关注人的情感又注重产品功能;即强调现代性又不抛弃传统;既重视现在又注重可持续发展。北欧设计对人

AISC 360-05 美国钢结构建筑设计规范.doc

ANSI/AISC 360-05 美国国家标准 钢结构建筑设计规范 2005年3月9日发布 本规范取代下列规范:1999年12月27日颁布的《钢结构建筑设计规范:荷载和抗力系数设计法》(LRFD)、1989年6月1日颁布的《钢结构建筑设计规范:容许应力设计法和塑性设计法》、其中包括1989年6月1日颁布的附录1《单角钢杆件的容许应力法设计规范》、2000年11月10日颁布的《单角钢杆件的荷载和抗力系数设计法设计规范》、2000年11月10日颁布的《管截面杆件的荷载和抗力系数设计法设计规范》、以及代替上述规范的所有从前使用的相关版本。 本规范由美国钢结构协会委员会(AISC)及其理事会批准发布实施。 本规范由美国钢结构协会规范委员会(AISC)审定,由美国钢结构协会董事会出版发行。 美国钢结构学会 One East Wacker Drive,Suite 700 芝加哥,伊利诺斯州60601-1802

版权?2005 美国钢结构学会拥有版权 保留所有权利。没有出版人的书面允许,不得对本书或本书的任何部分以任何形式进行复制。 本规范中所涉及到的相关信息,基本上是根据公认的工程原理和原则进行编制的,并且只提供一般通用性的相关信息内容。虽然已经提供了这些精确的信息,但是,这些信息,在未经许可的专业工程师、设计人员或建筑工程师对其精确性、适用性和应用范围进行专业审查和验证的情况下,不得任意使用或应用于特定的具体项目中。本规范中所包含的相关材料,并非对美国钢结构协会的部分内容进行展示或担保,或者,对其中所涉及的相关人员进行展示或担保,并且这些相关信息在适用于任何一般性的或特定的项目时,不得侵害任何相关专利权益。任何人在侵权使用这些相关信息时,必须承担由此引起的所有相关责任。 必须注意到:在使用其它机构制订的规范和标准时,以及参照相关标准制订的其它规范和标准时,可以随时对本规范的相关内容进行修订或修改并且随后印刷发行。本协会对未参照这些标准信息材料,以及未按照标准规定在初次出版发行时不承担由此引起的任何责任。 在美国印刷发行 钢结构建筑设计规范 2005年3月9日发布 美国钢结构协会

单片机驱动开发班

单片机驱动开发班 课程背景: 随着经济的发展,科技的突飞猛进,芯片技术也取得了飞速发展,这就使单片机技术在各种民用和工业测控等领域得到更为广泛应用。包括如今异常火爆的汽车电子中的车身控制、底盘控制、发动机控制、安全控制、娱乐系统等;包括传统的工业控制中的电机控制、温控系统、仪表设备、楼宇自控系统、数据采集系统等;包括计算机网络通信、数据传输、军用设备、航空航天等。单片机凭借其低成本、高性能的不可替代优势,已经成为微电脑控制的主力军。据统计,我国的单片机年需求量已达2亿片以上,且每年以大约15%的速度增长,发展迅速的单片机行业有着广阔的前景。 相比于发展迅猛的单片机行业,国内的单片机设计开发从业人员缺口很大。据统计,到2015年,我国单片机开发从业人员将达350万人,而目前的从业者只有大约一百五十万人,两百万的人才缺口正驱动大量人员加入这个庞大的群体。 学院优势: 硅谷芯微是深圳市硅谷龙科技有限公司教育产业下属专门从事IT实训的独立机构,深圳市硅谷龙科技有限公司始创于中国深圳,由侯工单片机工作室投资成立,致力于通过创新、高品质的课程体系和高效、实用的教育服务推动我国芯片级IT教育体系的建设。 深圳市硅谷龙科技有限公司致力于提供个性化、着眼于未来的教育服务,把国际先进且具有自主知识产权的案例全面应用于教育服务,在IT职业教育领域,硅谷龙以实用型的工程师人才培养理念作导引,以学生就业和职业生涯发展为指向,以成熟的IT开发经验为基础,通过完善、创新的课程体系以及全球化的企业合作为保障开展IT各类职业人才教育。硅谷龙在全国范围内建立实训基地,通过系统的实训,帮助学生提高职业素质及就业竞争力,并最终完成学员的就业服务。 面向行业及岗位: 面向行业:消费类电子、工控、汽车电子、监控电子等 主要岗位:单片机工程师、单片机硬件工程师、单片机技术支持工程师、单片机销售工程师、单片机驱动工程师。 教学目标:

美国建筑结构设计规范发展概况_上_

第1期建 筑 科 学 BU ILDING SCIENCE1997年 美国建筑结构设计规范发展概况(上) 黄成若 胡德斫 (中国建筑科学研究院建筑结构研究所) 近十多年,随着科学与技术进步,建筑结构设计理论和设计方法有了很大发展,从80年代至90年代,美国和欧洲共同体的规范每隔三至五年就修订一次。90年代的规范汇集了建筑结构的最新成果。本文侧重介绍和分析美国荷载规范、混凝土规范的主要特点,以及我国规范与国际规范存在的差异。同时,对美国的钢、砌体、木结构规范也作了简要介绍。 1 美国荷载规范 房屋建筑及其它结构最小设计荷载(Minimum Design Loads for Building s and Other Structures ASCE7-93),1993年版。 美国荷载规范以往由美国国家标准协会负责,80年代初期的编号为ANSI A58.1-1982; 80年代后期由美国国家标准协会和美国土木工程师协会共同负责,此时的编号为ANSI/ ASCE7-88;进入90年代后由美国土木工程师协会负责,编号改为ASCE7-93。 1.1 荷载分类 美国荷载规范将荷载分为7类,即(1)恒荷载;(2)活荷载(指房屋建筑或其它结构由于使用或居住产生的荷载,不包括风、雪、雨、地震等自然荷载);(3)土及静水压力;(4)风荷载;(5)雪荷载;(6)雨荷载;(7)地震荷载。 1.2 荷载组合 结构的设计强度应大于下列6种组合中的最大者: (1) 1.4D (2) 1.2D+1.6L+0.5(L r或S或R); (3) 1.2D+1.6(L r或S或R)+(0.5R或0.8W); (4) 1.2D+1.3W+0.5L+0.5(L r或S 或R); (5) 1.2D+1.0E+0.5L+0.2S; (6)0.9D-1.3W或+1.0E。 式中,D=恒荷载;L=活荷载;L r=屋面活荷载;S=雪荷载;R=雨荷载;W=风荷载;E=地震荷载。 上述6种荷载组合及其荷载系数是根据概率理论按结构可靠指标 校正后得出的。 美国荷载规范与我国荷载规范最根本的区别在于,我国荷载规范有充分的法定效力,而美国荷载规范没有法定效力。具体来讲,我国材料规范(混凝土结构、钢结构等设计规范)及设计工作中有关荷载组合及荷载系数必须严格按我国荷载规范执行,而美国材料规范及设计工作中有关荷载组合及荷载系数不一定按美国荷载规范执行。例如美国钢结构规范接受了上述6种组合及相应的荷载系数,美国混凝土结构规范就不接受上述6种组合,美国混凝土规范A CI318-89,以及最近新颁布的规范A CI318-95基本上都不接受上述组合。希望我国工程设计人员能注意到这一点。 1.3 地震荷载 美国荷载规范1993年版与1988年版相比, 49

关于北欧产品设计

关于北欧产品设计 20世纪20—30年代 北欧五国的设计逐步形成了,既不同于奢华的法国装饰艺术风格,又不同于商业味浓厚的美国流线型风格,同时有别于冷漠无情的德国理性主义风格的,独特的斯堪的纳维亚风格。 设计特征: ①注重现代与传统、机械化与手工艺、理性主义与人情味的巧妙结合 ②风格简朴、典雅、明快 ③合理运用自然材料并突出材料自身的特点 ④注重形式与功能的统一 ⑤既强调产品的高度理性主义的实用性,又在其 设计中注入丰富的人文内涵和脉脉温情 斯堪的纳维亚风格 是传统手工艺与现代大工业相结合 民族、地域特色与国际主义相统一 在设计上的典范 1954 美国“斯堪的纳维亚设计”展 1956~1957 德国“丹麦的新式样”展 1960~1961 美国“丹麦的艺术”展 1958 巴黎“斯堪的纳维亚的式样”展 1961 伦敦“芬兰制”展 瑞典是北欧最早出现自己的设计运动的国家 1900年成立了瑞典设计协会 陶瓷公司 古斯塔夫斯伯格(Gustavsberg) 罗斯特朗(Rorstand) 玻璃公司 奥列弗斯(Orrefors) 特点: ①风格简洁朴实②使用功能良好③便于批量生产 威廉·卡格(William Kage, 1889—1960) 瑞典的家具及室内设计 既强调现代主义的功能主义原则,又强调图案装饰性、传统与自然形态的重要性

布鲁诺·马松(Bruno Mathsson) 1935年他设计的一套扶手椅和搁脚板 卡尔·马姆斯登(Carl Malmsten) 被公认为瑞典“现代家具之父” “适度则永存,极端则生厌” 瑟克斯顿·沙逊(Sixton Sason) 1950年设计萨博92型小汽车 乔·威斯加德(Jan Wilsgaard) 1953年设计“亚马逊”型小汽车(Volov Amazon) 卡尔·克来恩(Kaarre klint) 优点:①强烈的自然感②具有传统的美感③体现手工艺风格④具有现代精神⑤简洁轻巧便利⑥成本低廉 特点: ①具有多方面适应性的设计②为不同层次消费者的设计 丹麦的灯具设计 具有很高的世界声誉,以科学安排光线分布及,讲究与室内建筑的融合而著称 保罗·汉宁森(Poul Henningsen 1894—1967) 1925年设计PH灯具 PH灯具 根据室内采光的要求和设想,从照明的科学原理出发来确定其造型,重叠式灯罩既形成了反射面,又增加了光线的层次,并且形成优美独特的外形轮廓 照明效果柔和、均匀、无炫光刺激,光色适宜,具有极好的功能效果 战后丹麦成立了一个专门部门: 丹麦家具生产者质量管理委员会;丹麦手工业与工业设计协会 丹麦设计: “没有时间限制的风格” 国际形象: “优质产品” 汉斯·威格纳(Hans Wegner 1914—) 1944年设计“中国椅子” 伯格·摩根森(Brge Mogensen) 1954年设计现代室内组合 阿纳·雅格布森(Aine Jacobsen 1902—1971) 50年代初期设计钢管脚的胶合板椅子 1958年设计的“天鹅型”椅和“蛋型”椅

基于项目驱动的嵌入式综合开发

实训报告 实训名称:基于项目驱动的嵌入式综合开发姓名: 院(系): 专业班级: 学号: 指导教师: 实习时间:

一、实训目的 (一)实习目的 本实训课程是针对嵌入式软件专业学生专门设计的,通过本课程设置的几个嵌入式综合项目的系统学习,可以使学生由浅入深的对嵌入式Linux系统进行全面学习,能够独立胜任嵌入式Linux应用开发、系统开发、驱动开发等多方面工作,并注重敬业团队精神培养。 1)增强学生的理论联系实际的能力 2)通过实训了解企业项目开发流程和学习新技术的方法 3)通过实训项目了解企业项目开发过程中文档的整理方法和问题的分析方法 4)通过实训项目加强学生对基础课程的运用能力,使其认识到基础知识的重要性5)通过实训争强学生对本专业和未来工作岗位的理解,端正心态,明确就业目标6)通过实训争强学生的编程技能,培养其良好的编码风格和编码习惯 (二)方法 本实训课程安排在学校实验室统一进行实训,学生上机独立完成规定实训项目。 (三)任务 要求每位同学独立完成实训题目的编程、调试、优化与测试,并交付使用。要求强化编程思维、编程能力和代码优化的能力,撰写《实训报告》(含:需求分析、总体设计、算法分析及设计中遇到的主要问题和解决方法,设计中尚存的不足与心得体会)。上交完成的所有源程序及相关文件。

三、实训报告 3.1 项目1名称 智能手环 3.1.1 实训内容 本次实训内容是制作智能手环,需要实现计步,测量温度,显示时间,电量,报警等功能。具体模块如下: (1)LED模块:显示电量 (2)ADC模块:模数转换 (3)PWM模块:蜂鸣器报警 (4)KEY模块:按键控制 (5)RTC模块:实时时钟 (6)计步以及温度显示模块 (7)总体实现 3.1.2 实训过程及相关结果 首先需要搭建软硬件环境,安装Ubuntu系统,安装交叉编译工具链。然后需要下载调试硬件连接,安装串口驱动等。环境搭建完成之后需要实现相应的每一个功能,具体功能如下: (1)LED模块:显示电量 此模块主要功能为点亮LED灯,以此来实现手环的点亮显示功能。 原理图如下: 在项目目录下分别创建led.c,led.h,main.c文件,根据芯片手册所分析的对应寄存器数据,在

中国和美国现行混凝土结构设计规范的差异比较

中国混凝土结构设计规范[code for design of concrete structure](GB 50010-2002)和美国房屋建筑混凝土结构规范(ACI 318-05)及条文说明(ACI 318R-05)[Building Code Requirements for Structural Concrete(ACI 318-05) and Commentary(ACI 318R-05)]之间存在比较大的差异。我国规范采用以概率理论为基础的极限状态设计法,以可靠指标度量结构构件的可靠度,采用分项系数的设计表达式进行设计。而美国规范是以可靠度理论为基础,采用的设计表达式也没有分项系数。从整体上说美国的结构混凝土设计所用的可靠度表达方式与我国规范有一定的相似之处,但在设计用荷载和设计用材料强度的取值水准上以及可靠度的表达方式上与我国规范有不可忽视的区别。 希望大家能够提出更多的有关中美两国规范差异的比较。 1.在美国的房屋建筑工程中,“通用建筑规范”指的是分别由美国各州或相关行政辖区以该州法律形式接受的规范。在这些规范中,全面规定了与房屋的设计、施工、检测有关的偏原则性的基本要求。然后,再由这些通用建筑规范在相应条文中指出各有关结构规范为其可以引用的组成部分。所以,美ACI 318-05规范称自己为通用建筑规范的一个组成部分。在2000年以前,一般认为美国的通用建筑规范共有以下四本:(1)以建筑官员与规范管理人联合会(Building Officials and Code Administrators,简称BOCA)的名义发布的“全国建筑规范”(National Building Code,简称NBC);(2)以南方建筑规范国际委员会(Southern Building Code Congress International,简称SBCCI)的名义发布的“标准建筑规范”(Standard Building Code,简称SBC);(3)以国际建筑官员会议(International Conference of Building Officials,简称ICBO)的名义发布的“统一建筑规范”(Uniform Building Code,简称UBC);(4)由国际规范委员会(International Code Council ,简称ICC)制定的“国际建筑规范”(International Building Code ,简称IBC)。由美国各州通过法律分别选择这四本通用建筑规范中的一本在该州作为有法律效力的规范使用。到2000年,经美国各有关方面协商,决定在美国全国统一用IBC规范来取代其它三本通用建筑规范,即以IBC(2003)作为美国全国唯一的“通用建筑规范”使用。但由于改用IBC规范需要各州法律的认可,故其它三本通用建筑规范仍有一个使用搭接期,但不再作新一轮修订。根据以上情况可知,ACI318-05规范译文中所说的“法律上被采纳的通用建筑规范”在目前即仍

ARM裸机驱动开发说明书

附件1: 学号: 实验设计说明书 题目ARM裸机驱动 学院计算机科学与信息工程学院 专业计算机科学与信息技术 班级12嵌入式 学生姓名古应波、卢圣 指导教师朱超平 2015年6月10日

写在前面 本文档以ARM9(三星2410/2440)为平台,介绍了如何实现裸机驱动程序的编写。初次接触裸机程序,感觉什么都是一头雾水,由于对硬件的不熟悉,所以前期花了很多时间来熟悉S3C2440的硬件原理图,初步熟悉了硬件原理之后,发现其实简单的逻辑驱动程序开发并不是很难。学习就应该这样,循序渐进。把一步步把简单的东西弄懂了,便没有复杂的了,所谓水到渠成。这篇文章是面对初学者的,把很多问题简化了。希望对刚接触ARM裸机程序开发的同学有所帮助。 由于时间和技术的限制,程序还存在不少bug,欢迎指正。

目录 第一节、项目建立 (3) 第二节、相关参数的配置 (4) 第三节、程序的编译、烧写、执行 (7) 第四节、串口驱动 (8) 第五节、LED驱动 (11) 第六节、按键及蜂鸣器驱动 (12) 第七节、步进电机驱动 (13) 第八节、RTC驱动 (14) 第九节、定时器驱动 (16) 第十节、中断驱动 (17) 第十一节、数码管驱动 (18) 第十二节、I2C矩阵键盘驱动 (19) 第十三节、LCD驱动 (20) 第十四节、触摸板驱动 (24) 第十五节、驱动整合 (26) 串口模式: (26) LCD模式: (27)

第一节、项目建立 本次项目使用的软/硬件包括: CodeWarrior for ARM Developer Suite v1.2(以下简称ADS). MagicARM2440硬件仿真平台 工程建立步骤: 打开ADS,选择File->New。在弹出的面板框中选择ARM Executable Image,项目名填写Test(可根据自己需要自行更改),项目存储位置此处选择F://ADS/Test(可根据自己需要自行更改)。注意:项目的储存位置一定不要包含中文路径,否则会出现不可预期的错误。 建立项目工程组织文件夹。在屏幕的中部点击右键,选择Create Group新建项目的组织文件夹,方便对源文件进行管理。如下图

浅谈北欧现代设计的特征及其影响

浅谈北欧现代设计的特征及其影响 北欧现代设计,主要是指欧洲北部四国挪威、丹麦、瑞典、芬兰等国的室内与家具设计风格。纯粹、洗练、朴实的北欧现代设计,其基本精神在于:讲求功能性,设计以人为本。北欧现代设计风格,起步于20世纪初期,形成于二次世界大战期间,一直发展到今天,是世界上最具影响力的设计风格流派之一。人道主义的设计思想、功能主义的设计方法、传统工艺与现代技术的结合、宁静自然的北欧现代生活方式,这些都是北欧设计的源泉。 现代设计所谓北欧设计学派,主要是指欧洲北部四国挪威、丹麦、瑞典、芬兰的室内与家具设计风格。纯粹、洗练、朴实的北欧现代设计,其基本精神就是:讲求功能性,设计以人为本。 北欧学派有三个主角在不同的发展时期分别充当先锋,瑞典在三四十年代最为著名,丹麦五六十年代发展迅速,而芬兰自本世纪崭露头角,实际上在每个时代都有独特的贡献,只是在20世纪60年代以后处在前卫的领导地位。北欧各国另一个共同的特点是锁定自己的设计风格和设计路线,任外界干扰均不动摇,不被控制流派思想所支配,不随风摇摆,不随波逐流,充满了自信,坚持各自的设计路线和风格。 北欧学派大师林立,其间堪称鼻祖者只有埃利尔·沙里宁一人,埃利尔·沙里宁在城市规划、建筑设计、室内设计、家具设计、工业设计几乎所有设计领域的综合成就,而且因为他同时培养了一批顶尖级大师,这种培养不仅发生于他的祖国芬兰和北欧,更结硕果于大洋彼岸的美国。埃利尔·沙里宁移居美国后创办的匡溪设计学院成为美国现代设计大师的摇篮,培养出小沙里宁、伊莫斯(Charles Eames)、伯托埃(Harrv Bertoia)等一批划时代人物,由此,埃利尔·沙里宁亦被称作美国现代设计之父。 自20世纪以来,北欧出现了一批杰出建筑设计师, 丹麦的著名建筑师A·雅科布森,代表作品有哥本哈根的斯堪的纳维亚皇家旅馆,瑞典建筑师R·厄斯金,代表作品有英国纽卡斯尔的贝克住宅区,丹麦建筑师J·乌特松,代表作品有澳大利亚的悉尼歌剧院,如瑞典的E·G·阿斯普伦德、芬兰的A·阿尔托,昂蒂·诺米斯耐米等。在这些人中,不得不提到昂蒂·诺米斯耐米的影响,昂蒂·诺米斯耐米(Antti Nurmesniemi)是二十世纪最重要的设计师之一。在漫长的设计生涯中,他一直是发展芬兰设计艺术的主要人物。他在许多国际领域代表着芬兰,并且把出色的设计知识和技巧传播到几乎世界上的每个角落。诺米斯耐米是一个多才多艺的设计师,凭着在建筑、室内、家具、展示、产品、平面以及摄影方面等令人难以置信的广泛领域中的创造性设计,可以说他代表了芬兰的设计艺术。他的大部分作品都被世界一流的博物馆收藏。然而,更重要的是很多由他设计的产品已经成为家用物品。除了他所设计的一连串家具和产品外,诺米斯耐米更以他广泛的室内设计和大规模工业设计而闻名于世。 北欧风格以简洁著称于世,并影响到后来的”极简主义”、”后现代”等风格。它

Windows驱动开发技术详解 第六章的(Windows内核函数)自我理解

Windows驱动开发技术详解第六章的(Windows内核函数)自我理解 学习各种高级外挂制作技术,马上去百度搜索(魔鬼作坊),点击第一个站进入,快速成为做挂达人。 其实这章主要就是讲函数DDK有自己的函数跟SDK一样编写DDK使用DDK提供的函数就OK了 /////////////////////////////////////////////////////////////////////////////// ASCII字符串和宽字符串 ASCII字符构造 char*str1="abc"; 打印ASCII字符串 char*string="hello"; KdPrint("%s\n",string);\\注意是小写%s ///// UNICODE字符构造 wchar_t*str2=L"abc"; 打印宽字符串 WCHAR*string=L"hello"; KdPrint("%S\n",string);\\注意是大写%S /////////////////////////////////////////////////////////////////////////////// ANSI_STRING字符串和UNICODE_STRING字符串 ASCII字符串进行了封装 typedef struct_STRING{ USHORT Length;//字符的长度。 USHORT MaximumLength;//整个字符串缓冲区的最大长度。 PCHAR Buffer;//缓冲区的指针。 }STRING; 输出字符串 ANSI_STRING ansiString; KdPrint("%Z\n",&ansiString);//注意是%Z UNICODE_STRING宽字符串封装 typedef struct_UNICODE_STRING{ USHORT Length;//字符的长度,单位是字节。如果是N个字符,那么Length等于N的2倍。USHORT MaximumLength;//整个字符串缓冲区的最大长度,单位也是字节。 PWSTR Buffer;//缓冲区的指针。 }UNICODE_STRING*PUNICODE_STRING; 输出字符串 UNICODE_STRING ansiString; KdPrint("%wZ\n",&ansiString);//注意是%wZ ///////////////////////////////////////////////////////////////////////////////

北欧设计与日本设计之比较

北欧设计与日本设计之比较 《美术大观杂志》2015年第一期两者的结合形成看似无所不包却分外柔和的设计。开放是指对不同设 计形态的接纳,谨慎是指在材质上的运用经得起日久推敲。比如,丰富的木材资源为北欧提供了得天独厚的材料优势,且寒冷气候导致树木生长周期较长、年轮平整紧密,可成为长寿命的设计材料。建筑上大量木材的使用,是因为它能够根据环境湿度变化调节水分,达到调节建筑的温度作用,所以这种木构传统延续至今。于是产生了我们今天看到的所谓“北欧风格”:材料亲和、手工质感、色彩明亮、细节圆润、功能实用。而东西方本质上的冲突是内敛与外放的区别,这在设计中体现得淋漓尽致,尽管北欧设计秉承简约,但同样可以异常的张扬与夸张而毫无违和感。日本设计是从战后起步发展,经济自20 世纪60年代开始了持续长达30年的高度增长,被誉为“日本战后经济奇迹”,同时日本快速跻身于世界设计大国序列。如果从外表特质去观看,与北欧设计样式极其相近,但从历史传统、文化根源、民族性格去深究内涵和根基,却是大相径庭。其中“禅”的精神,对日本设计的民族从内在到技术表达都起到决定性的作用。由于单一民族而形成单一传统文化根基,结果是重视团体与稳定,表现在设计文化 上则是方向明确和有限制的活跃。日本对待外来文化则是一个长期吸纳的历史,是温和接受并最终改造为己的连续过程,形成了能够最恰当地结合并发展出自己独特文化体系的日本。对别族文化的学习与模仿并未让日本迷失自己,而是根植在传统和对本身缺失部分弥补之上而进行“,将原产于外国的东西加以吸收、改良和应用,从而大力发展并超出原有水平”。文化的融合与变通让日本文化形成了混沌后 的混合与统一,然后是复杂基层上淬炼出的单纯和简单,这与精神上的“禅”恰好是相同的。日本禅宗之流传,始于孝德天皇白雉四年(653)道昭之入唐求法,之后禅的“工匠精神”毫无保留地印记在日 本文化中,形成了一种独特力量,人皆将事做到最好成为了日本的共识,即把每一件事都变成了修心、雕琢和生命体验。今天看到的日本当代设计中推崇少而简的意图,是糅合了崇尚天然的信仰与禅的精神,注重材料本身的质感,并且取材自现代设计的功能要求。由德国引入并快速接受的模数方法,贯彻在日本设计的方方面面。这种在现代设计的进程中快速适应功能至上的需要,并能够完整地保持民族传统精神,在世界史上也是很少见的。与北欧的民主设计基础不同,这种保持是建立在日本国家力量对设计的保护与推动的结果。因为国家已经清醒地认识到战后日本需要用好的设计与好的品质,才能使日本制造获得竞争胜利。仿造与抄袭是快速赶超对手无法逾越的手段,日本也曾经历过大范围剽窃美国及欧洲 设计的情况,当然也包括北欧设计。但这种学习的过程是日本设计形成的一个阶段,他们成功屏蔽了在精神层面的抄袭,最终帮助日本形成了技术与传统平衡的设计道路。今天的日本设计具有突出的双面性,即繁复与极简并存。被称为“千岛之国”的日本境内多山,山地呈脊状分布于日本的中央,将日本的国土分割为太平洋一侧和日本海一侧,山地和丘陵占总面积的71%,大多数山为火山。这种自然环境现实 决定了人们对资源的吝惜,更决定了谨慎对待的生活态度,对自然与物品的珍视、敬畏,并在设计上最大可能实现材料效能,是与生俱来养成的习惯,而不仅仅是设计风格。根植于没有陆地的国家危机,加上人口的急剧增长和狭长的国土实况,决定了日本不能够从西方设计中借鉴更多,也形成了日本设计精湛而不吝人工繁复的另辟蹊径特质,因为设计是唯一能够帮助节省资源和减少消耗的方法,只有最严谨整齐的设计才能最大限度开掘材料的使用价值,这种设计理念促成了设计产品在工艺水平上的完美。 时至当下,北欧设计仍旧秉承着自己优雅的人性化态度,无时无刻不体现着设计的本质,并倾尽可能地挖掘和满足用户的需求,创造性价比优越、历久弥新、功能完美的理想产品。而日本设计一贯延续着禅的留白灵魂,将谦逊与单纯作为设计的根基,在提倡极度节约的前提下为用户提供着由“严谨工艺”制造出“彻底简单”的日本设计。他们都是看似简单的优秀的设计,却因为迥异的文化而异彩纷呈。从这些设计中我们能看到在高度文明的当代设计背景中,人们开始对千百年流传的手工艺再度认识与偏好,开始对高速的机械工业与信息节奏滋生出一种内在的抵抗,让我们更坚信根植于灵魂和人性的设计是未来发展的必然。作者:叶森单位:辽宁师范大学

相关文档
最新文档