Android Google Map API V2 开发入门

Android Google Map API V2 开发入门
Android Google Map API V2 开发入门

Android Google Map API V2 开发入门

文档前提:已经下载并安装了Android SDK 及 Eclipse开发工具,具备开发一些常规的Android 应用等基础技能。

1. 安装Google Play services SDK

进入Eclipse的菜单: Window - Android SDK Manager,然后安装和更新Extras 分类下的Google Play services即可。

2. 生成API KEY

先找到debug.keystore文件,可以通过展开菜单:Window > Preferences > Android > Build 来查看这个路径

比如我的路径是:/home/zwang/.android/debug.keystore (Linux系统)

然后通过终端执行如下命令获取哈希码:

$ cd /home/zwang/.android

$ keytool -list -v -keystore debug.keystore

然后会看到MD5及SHA1相关的字符串,其中SHA1马上会被用于生成API KEY。

进入Google APIs Console页面:https://www.360docs.net/doc/c015572450.html,/apis/console/

先使用Gmail帐号登录(没有需先申请),然后根据系统提示点击Create project 创建API工程,然后会跳转到services页面,需要在这个页面打开“Google Maps Android API v2”这个选项(使处于on的状态)。然后进入”API Access”页面,点击“Create new Android key...” 按钮,然后在对话框中填写:

SHA1;https://www.360docs.net/doc/c015572450.html, 这种形式的字符串。其中SHA1是签名生成的那一串,https://www.360docs.net/doc/c015572450.html,是你测试工程的名称,形如这样:

0E:10:94:C7:B9:FD:15:62:27:FC:E7:FC:0C:05:59:A7:18:41:F5:B2;com.examp le.mapdemo

然后点击“Create”就会创建了API KEY了(所以你的每个需要使用地图的应用都需要创建一个API KEY)

3. 创建测试工程

就是创建一个常规的Android 工程,如com.ucrobotics.mapdemo

然后修改AndroidManifest.xml文件

元素之中加入子标签:

android:value="your_api_key"/>

注意替换上面的“your_api_key”为你真正生成的那串KEY字符。

然后在标签之前添加许可信息(作为 的子元素):

android:name="com.ucrobotics.mapdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature" />

android:name="com.ucrobotics.mapdemo.permission.MAPS_RECEIVE" />

android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

android:name="android.permission.ACCESS_COARSE_LOCATION" />

android:name="android.permission.ACCESS_FINE_LOCATION" />

android:name="com.google.android.providers.gsf.permission.READ_GSERVI CES" />

注意:里面有工程的名称,需要更改成自己的。

然后在标签之后添加对OpenGL ES V2特性支持(作为 的子元素):

修改布局文件activity_main.xml如下:

android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="wrap_content"

android:layout_height="match_parent" />

注意:包括官网文档上都使用的com.google.android.gms.maps.MapFragment,这里推荐使用SupportMapFragment

package com.ucrobotics.mapdemo;

import https://www.360docs.net/doc/c015572450.html,.Uri;

import android.os.Bundle;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.content.Intent;

import android.content.pm.ApplicationInfo;

import android.content.pm.PackageManager;

import android.support.v4.app.FragmentActivity;

import com.google.android.gms.maps.CameraUpdateFactory;

import com.google.android.gms.maps.GoogleMap;

import com.google.android.gms.maps.SupportMapFragment;

import https://www.360docs.net/doc/c015572450.html,tLng;

import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends FragmentActivity {

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(https://www.360docs.net/doc/c015572450.html,yout.activity_main);

//下面一段是测试定位及做标记的

GoogleMap gmap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); //获取地图对象

gmap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(39.58,116.20), 10)); //定位北京知春路,level 10显示

gmap.addMarker(new MarkerOptions().position(new

LatLng(39.58,116.20)).title("Marker")); //在指定的纬-经度上做个标记(气泡)

}

}

代码很简单,但还不能运行,需要进行如下配置:

添加Google Play services的类库

在Eclipse里面选择:File > Import > Android > Existing Android Code Into Workspace然后点击Next。之后Browse..., 找到路径下的

/extras/google/google_play_services

/libproject/google-play-services_lib, 然后选择Finish。

然后添加对这个库的引用

在自己的项目上右键,选Properties,然后在下面的Library里面Add刚才的google-play-services_lib。之后程序就应该能运行了。

==========================================================

常见问题:

1. "https://www.360docs.net/doc/c015572450.html,ng.NoClassDefFoundError:

com.google.android.gms.R$styleable"

提示该问题时可检查下工程的gen目录,应该没有生成:

com.google.android.gms,这是由于之前的services库引用出了问题。

可以参考这里:如下截图:

2. 其它需要注意的地方就是使用SupportMapFragment和FragmentActivity

3. 对于真机运行,机器需要安装Google Map 以及 Google Play Service(中文市场为“Google Play服务”),第一个一般都会默认安装,但第二个可能需要自己安装

4. 标记有误差,比如上面的代码本意是标记北京知春路,但地图上实际标记到大兴去了,相差几十里,正在寻找原因...

参考链接:

【1】官方Getting Started:

https://www.360docs.net/doc/c015572450.html,/maps/documentation/android/start

【2】Quick Start:

https://www.360docs.net/doc/c015572450.html,/document/pub?id=19nQzvKP...AE9fjbJySowONZZtNHzw

【3】对地图的定制:

https://www.360docs.net/doc/c015572450.html,/maps/documentation/android/views

【4】https://www.360docs.net/doc/c015572450.html,/forum.php?mod=viewthread&tid=245373

【5】https://www.360docs.net/doc/c015572450.html,/mengdd/archive/2013/01/01/2841390.html(包含有模拟器运行解决方法)

【6】运行google提供的demo工程:

https://www.360docs.net/doc/c015572450.html,/maps/documentation...id/intro#sample_code

Fixing https://www.360docs.net/doc/c015572450.html,ng.NoClassDefFoundError: com.google.android.gms.R$styleable

If you got a NoClassDefFoundError and the Class com.google.android.gms.R is not present in the "gen" folder than i might have a solution for you.

First of all you have to Import the google play services lib.

Import -> Existing Android Code Into Workspace.

Select the google-play-services-lib and finish the dialog. The Project should now appear in the Package Explorer.

Now go to your Project with the NoClassDefFoundError and rightclick on the Project. Than Click Properties.

In the Properties Window click on Android.

Click on "Add..." , select "google-play-services_lib" and press ok.

It should look like this (Android version doesn't matter)

Finally your Project hopefully looks like this:

2013.1.17 (C) yh

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为单的数据块,但不知道文件怎样表示。举个更具体的生活例子。主人(最高层驱动)知道(并且需要)笔计本电脑,但不知道具体放在什么位置;而仆人(最底层驱动)却知道它放在具体什么地方,但

网店美工视觉设计实战教程(全彩微课版)-48481-教学大纲

《网店美工视觉设计实战教程(全彩微课版)》 教学大纲 一、课程信息 课程名称:网店美工:店铺装修+图片美化+页面设计+运营推广(全彩微课版) 课程类别:素质选修课/专业基础课 课程性质:选修/必修 计划学时:21 计划学分:2 先修课程:无 选用教材:《网店美工视觉设计实战教程(全彩微课版)》,何晓琴编著,2018年;人民邮电出版社出版教材; 适用专业:本书可作为有志于或者正在从事淘宝美工相关职业的人员学习和参考,也可作为高等院校电子商务相关课程的教材。 课程负责人: 二、课程简介 随着网店的迅速普及和全民化,衍生了“淘宝美工”这个针对网店页面视觉设计的新兴行业。本书从淘宝美工的角度出发,为淘宝卖家提供全面、实用、快速的店铺视觉设计与装修指导。主要包括网店美工基础、图片调色、图片修饰、店铺首页核心模块设计、详情页视觉设计、页面装修、视觉营销推广图制作等,最后针对无线端进行首页、详情页视觉的设计与装修。本书内容层层深入,并通过丰富的实例为读者全方面介绍淘宝美工在日常工作中所需的知识和技能,有效地引导读者进行淘宝店铺装修的学习。 本课程主要对淘宝美工的设计基础和方法进行详细介绍,通过学习该课程,使学生了解网店美工的基本要求,以及掌握网店的设计与制作。 三、课程教学要求

体描述。“关联程度”栏中字母表示二者关联程度。关联程度按高关联、中关联、低关联三档分别表示为“H”“M”或“L”。“课程教学要求”及“关联程度”中的空白栏表示该课程与所对应的专业毕业要求条目不相关。 四、课程教学内容

五、考核要求及成绩评定 注:此表中内容为该课程的全部考核方式及其相关信息。 六、学生学习建议 (一)学习方法建议 1. 理论配合实战训练进行学习,提高学生的实战动手能力; 2. 在条件允许的情况下,可以申请一个网店,进行深入学习; 3. 提高学生的是设计感和审美能力; (二)学生课外阅读参考资料 《网店美工:店铺装修+图片美化+页面设计+运营推广(全彩微课版)》,何晓琴编著,2018年,人民邮电出版社合作出版教材

从零开始搭建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

行为驱动开发

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

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

单片机驱动开发班

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

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

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

一、实训目的 (一)实习目的 本实训课程是针对嵌入式软件专业学生专门设计的,通过本课程设置的几个嵌入式综合项目的系统学习,可以使学生由浅入深的对嵌入式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文件,根据芯片手册所分析的对应寄存器数据,在

淘宝网店二维码使用教程全攻略

一、什么是二维码——还记得超市的条形码吗? 谈起“二维码”,可能很多人会犯糊涂。但是与它类似的“一维条形码”广泛地运用于超市商品识别,却是我们每个人都十分熟悉的。二维码正是“一维条形码”发展的“高级阶段”,在一个小小的方块里面包含一条链接地址,引导使用者通过扫描设备(如手机)快速进入相应 的网址。 图1:一维条形码图2:淘宝二维码 现在,淘宝为卖家们提供二维码在线生成的工具,您可以将您的店铺和宝贝的“手机浏览链接”转化成二维码印制出来,夹在包裹中、印在优惠券上甚至是你的商品上。举例来说,接收包裹时,买家拿到印有二位码的优惠券,此时,他们只需用手机的摄像头“照”一下这个黑白相间的小方块,就可以快速地通过手机进入您的店铺中。二维码还有更多的妙用和更多的好处。 图3:生活中使用淘宝二维码的场景

二、淘宝二维码妙在何处——轻轻一扫客源不断! 1. 好处在哪里? 淘宝买家通过手机上的二维码识别软件,扫描卖家发布的淘宝二维码,可以直接找到卖家的促销活动,店铺首页,宝贝单品。免去输入网址、关键词搜索的麻烦。 淘宝卖家可以将二维码印刷到包裹中的宣传物上(如优惠券、宣传册),随包裹发给买家,吸引买家通过二维码进入店铺进行二次购买,为您带来源源不断的客流。 您可以在PC店铺和商品详情页中贴出二维码,使顾客可以在手机中快速收藏,随时随地光顾您的店铺! 卖家还可以考虑在平面媒体(如《淘宝天下》)上发布带有二维码的促销活动。对于有能力大卖家,还可以在自己的商品上贴上相应的二维码。 图4:二维码的引流作用 2. 买家的操作方法 有软件和摄像头的买家:淘宝合作的免费二维码软件有淘宝Android版、快拍、QuickMark、码上淘、魔印等,手机访问https://www.360docs.net/doc/c015572450.html,可快速下载。这些手机软件提供二维码扫描功能,只要买家打开这些软件,将摄像头对准二维码1秒中左右,识别成功后手机将自动进入对应的网页。 没有软件或者摄像头的买家可以在手机上进入https://www.360docs.net/doc/c015572450.html,页面,输入活动码,同样能够进入到您所设置的链接中。 图5:买家的使用方法

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新建项目的组织文件夹,方便对源文件进行管理。如下图

dw网页淘宝设计模板

竭诚为您提供优质文档/双击可除dw网页淘宝设计模板 篇一:dreamweaver在淘宝美工课中的应用 泉州新东方叶生方老师整理 dreamweaver在淘宝美工课中的应用 一、店铺装修(网页技术) 专业型课程分两个阶段:1、店铺装修基础阶段,2、html+css行内样式部分。 (一)实用型阶段——店铺装修基础 1、认识旺铺及类型、模板、模块、布局;旺铺20xx标准版拓展版20xx新版 2、ps切片导出web代码 3、dw表格排版 4、分类导航设计——ps切片、dw表格、热区三种技术综合运用 5、旺铺宽屏效果制作(页面背景、店头自定义、自定义大图三部分组成) 6、图片背景、旺旺代码、收藏代码、滚动代码 7、识别哪些效果属于模块功能,那些效果可以自定义

实现,常用的促销工具(限时打折、满就送、团购宝、搭配减价、会员管理等) 8、淘宝首页整体风格设计、“宝贝描详情页”风格设计 9、html常用标注介绍table、tR、td、img、a等用功能 (二)专业提升阶段——html+css行内样式 10、dw使用的注意要点以及认识tabletRtdFontdiVspanh1imgapliulmarquee等常用标注。 11、表格结构分析,学会手写简单的网页代码 12、认识css盒子模型 13、了解css排版基本方法——实际表格相似导航效果 14、运用css设计宝贝详情页版式、利用p、img标注的css属性设置版式 15、css美化表格 16、了解淘宝widget库的作用与意义——悬浮旺旺、宝贝放大镜等等特效 篇二:用dw做出漂亮的模板 如何用dw做出漂亮的促销表格模板 很多的卖家在逛淘宝店时会发现很多的店铺装修很美观,如打折模块和团购模块,自己想去问店主怎么制作,但是有几个淘宝卖家会告诉你呢,不过不要着急,下面让开淘网为你详解一番吧。今天我们讲的是如何用dReamweaVeR做

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 ///////////////////////////////////////////////////////////////////////////////

淘宝装修 SDK高级模板开发流程

淘宝网装修市场 高级模板设计指南1

目录 1、本地开发环境 (3) 1.1 什么是SDK (3) 1.2 下载SDK (3) 1.3 安装SDK (4) 1.4 SDK的目录结构 (7) 1.5 启动SDK (8) 2、使用SDK后台 (10) 2.1 创建模板 (10) 2.2 预览模板 (17) 2.3 配置SDK本地属性 (18) 3、模板的标准结构 (18) 4、设计模块 (18) 4.1 创建相关文件资源 (18) 4.2 编写模块代码 (19) 4.2.1 引入标识 (19) 4.2.2 使用KISSY效果 (19) 4.2.3 使用模块参数 (19) 4.2.4 调用数据接口 (20) 4.3 配置模块信息 (20) 5、设计页面 (22) 5.1 结构化页面 (22) 5.2 设计页面 (24) 5.2.1 引入单个模块 (24) 5.2.2 划分页面片区 (25) 5.2.3 配置页面信息 (26) 6、特殊页面要求 (27) 6.1 宝贝详情页面 (27) 6.2 宝贝列表,文章列表页面 (27) 6.3 不可装修的页面 (27) 7、调试模板装修效果 (28) 8、关于白名单过滤 (28) 9、PHP函数 (28) 10、发布模板到装修系统 (28) 2

1、本地开发环境 1.1什么是SDK SDK是淘宝提供给设计师在本地设计模板的软件开发包,SDK模拟了淘宝店铺环境。 SDK主要包括三个部分:Server,PHP引擎和模拟数据。 Server是指SDK会在本机上启动一个Server,这样我们可以通过浏览器浏览设计的作品。PHP引擎是指设计师只能使用PHP作为模板设计的语言。 模拟数据是指SDK包括了淘宝各个典型的店铺,这样设计师在设计模板时不用考虑实际的数据库。 目前,提供Windows操作系统和Mac操作系统的SDK工具。 1.2下载SDK 装修市场后台下载安装包,安装至本地,创建SDK web控制台。您将使用淘宝ShopSDK 来开发和上传设计模板。在开始设计之前,需在本地部署SDK环境。 设计师登录装修市场后,点击“设计师后台”导航按钮进入。(加入设计师注册流程帐号。) 进入设计师后台界面: 3

学习笔记windows驱动开发技术详解

<学习笔记>Windows驱动开发技术详解 派遣函数是Windows驱动程序中的重要概念。驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的。 用户模式下所有对驱动程序的I/O请求,全部由操作系统转换为一个叫做IRP数据结构,不同的IRP会被“派遣”到不同的派遣函数中。IRP与派遣函数 IRP的处理机制类似于Windows应用程序中的“消息处理”,驱动程序接收到不同的IRP后,会进入不同的派遣函数,在派遣函数中IRP得到处理。1.IRP 在Windows内核中,有一种数据结构叫做IRP(I/O Request Package),即输入输出请求包。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求。操作系统将I/O请求转化为相应的IRP数据,不同类型的IRP会被传递到不同的派遣函数中。 IRP有两个基本的重要属性,一个是MajorFunction,另一个MinorFunction,分别记录IRP的主类型和子类型,操作系统根据MajorFunction将IRP“派遣”到不同的派遣函数中,在派遣函数中还可以继续判断这个IRP属于哪种MinorFunction。 下面是HelloDDK的DriverEntry中关于派遣函数的注册:

view plaincopy to clipboardprint? #pragma INITCODE extern "C" NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegisterPath ) { NTSTATUS status; KdPrint(("Enter DriverEntry\n")); //设置卸载函数 pDriverObject->DriverUnload = HelloDDKUnload; //设置派遣函数 pDriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKDispatchRoutine; pDriverObject->MajorFunction[IRP_MJ_CLOSE] = HelloDDKDispatchRoutine;

富网店,淘宝详情页及主图制作

加入富网店俱乐部https://www.360docs.net/doc/c015572450.html, 摘要:主图决定点击率,详情页决定转化率,主图是详情页的精华所在,是整个详情页的缩影。一般来说,先有详情页,后有主图。 在讨论今天的问题之前,我们先想想,淘宝能提供的资源其实就是展现。每一个网页的位置是有限的,例如搜索页的第一页就只能展示48个宝贝,类目页的第一页是95个宝贝,我们凭什么淘宝要把有限的免费展位资源给自己呢? 其实这点,和我们交朋友拜把子一个道理,当双方都能够给对方正反馈的时候,感情会一直维系下去。当一方长期接收对方的付出,但是却不反馈的时候,这段感情就岌岌可危了。所以,你希望淘宝照顾你,你自己也得照顾淘宝。 一、为什么要做好主图和详情页? 要怎么照顾淘宝?那就要了解淘宝的KPI(关键绩效指标)——销售额。我们先从一个订单的产生过程入手,看看如何帮助淘宝,提高它的KPI。 第一步:产生需求。比如天冷了,需要一件长袖的衣服。此刻脑海里面浮现出一件长袖衬衫。 第二步:选择淘宝平台,敲入关键词:长袖衬衫男。 第三步:看图片。

第四步:看哪个宝贝顺眼,点击宝贝。 这一页的搜素结果只有48个宝贝,但是我优先选择了其中一个点击进去,其他的47个宝贝就不会有流量了。这里就涉及到一个核心指标“点击率”,展现量*点击率=点击量(也就是流量)。 注意,淘宝把你放在搜索的第一页上面,不一定有流量,还得有买家点击了,你才有流量。试想,如果淘宝把你放在搜索首页,半天都没人点你的宝贝,猜猜下一秒会发生什么?淘宝会很生气,后果很严重!结果就是连展现都不给你了! 第五步:从上往下扫描详情页。 第六步:看评价,到了这一步如果没有什么意外就买单了。 第七步:掏钱买单 当然,如果详情页看了让我一点欲望都没有,我连评价都不看了,直接关掉页面走人。所以这里又有一个核心指标“转化率”,访客数*转化率*客单价=销售额,客单价=支付宝成交金额/成交用户数,也就是人均在你店里消费多少RMB。 综上,我们会发现,核心KPI主要是点击率(主图)和转化率(详情页)。一般来说,都有这么一个逻辑,先有详情页,后有主图,因为主图就是详情页的精华所在,是整个详情页的缩影。所以这里,我们先讲详情页。 二、详情页设计必要的几个动作

linux的lcd驱动详细讲解

嵌入式驱动程序Day12 Top 1. LCD驱动设计开发 1 LCD驱动设计开发 1.1问题 通过led驱动开发掌握linux内核framebuffer 驱动开发通用方法。 1.2方案 一、帧缓冲(Framebuffer )。 帧缓冲(Framebuffer )是Linux为显示设备提供的一个接口,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功 能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户 可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer 设备驱动 来完成的。 Framebuffer本身不具备任何运算数据的能力,就只好比是一个暂时存放水的水池。CPU将运算后的结果放到这个水池,水池再将结果流到显示器,中间不会对数据做处 理。应用程序也可以直接读写这个水池的内容。在应用程序中,一般通过将FrameBuffer 设备映射到进程地址空间的方式使用,比如下面的程序就打开/dev/fbO 设备,并通过mmap系统调用进行地址映射。 FrameBuffer设备还提供了若干ioctl 命令,通过这些命令,可以获得显示设备的 一些固定信息(比如显示内存大小)、与显示模式相关的可变信息(比如分辨率、象素结构、每扫描线的字节宽度),以及伪彩色模式下的调色板信息等等。 二、FrameBuffer 在Linux中的实现和机制。 Framebuffer对应的源文件在linux/drivers/video/ 目录下。总的抽象设备文件为fbcon.c,在这个目录下还有与各种显卡驱动相关的源文件。 1. 分析Framebuffer设备驱动。 FrameBuffer设备驱动基于如下两个文件: (1) linux/include/linux/fb.h (2) linux/drivers/video/fbmem.c 2. 分析这两个文件。

2019年中职商品经营专业改革建议

2018年商品经营专业改革建议 经济与管理教研组起草 1 现状分析 鉴于2017年8月商品经营专业招生只有16人报读,以至于该专业被暂停招生。商品经营专业作为经济管理教研组的主要专业,具有招生的吸引力,能够吸引多一点女生前来报读我校。目前商品经济已经进入互联网+时代,互联网、物联网、大数据已经占领了商品经营的半壁江山,即网商、微商、电子商务、B2C、电子支付结算的兴起,传统实体零售业态如超市、零售店、百货商场已经逐步被网店、微店取代,信息化、自动化、现代化是当今商品经营发展主要趋势。因此,商品经营专业课程设置必须与时俱进,商品经营专业的课程设计目标是围绕培养实体店铺的超市、百货商店的销售人员,在大格局观的指导下,商品经营的课程设置必须改革,必须紧跟时代步伐,否则我们这个专业必将遭到淘汰。只有改革,才能生存,才能图发展,为了商品经营专业在2018年8月秋季新学期的持续发展,吸取2017年的经验教训,建议从新经济格局出发,全面改革商品经营的课程设计,课程设计方向结合我校校情和资源配置,与新兴市场业态接轨,重新拟定本专业课程开设方向。 2 课程设计改革 2.1改革方向 在商品经营这个大专业下,设计两个方向分支,第一,商品经营(“互联网+”营销方向)。第二,商品经营(房地产营销方向)。之所以这样设计,是因为目前这两个方向都是市场经济最热门的方向,吸引大量的人才进入,前景很好,有利于就业。互联网+的网络虚拟经济也是国家鼓励发展的创新创业型商业业态,吸引了很多人才在电子商务领域从业。此外,房地产一手房、二手房的销售、租赁、按揭也正处于上升期。 2.2 专业改革策划思路 在招生宣传时,重新修改商品经营专业的课程授课方向及专业优秀,让学生、家长都知道,商品经营这个传统专业已经与时俱进,灌入了与当今互联网、物联

Linux 下wifi 驱动开发—— SDIO接口WiFi驱动浅析

Linux 下wifi 驱动开发(三)——SDIO接口WiFi驱动浅析 SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议 IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户主平台数据通过SDIO口到无线网络之间的转换。SDIO具有传输数据快,兼容SD、MMC接口等特点。 对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时 候还是先以sdio的卡的设备去注册的。然后检测到卡之后就要驱动他的wifi功能了,显然,他是用sdio 的协议,通过发命令和数据来控制的。下面先简单回顾一下SDIO的相关知识: 一、SDIO相关基础知识解析 1、SDIO接口 SDIO故名思义,就是SD 的I/O 接口(interface)的意思,不过这样解释可能还有点抽像。更具 体的说明,SD 本来是记忆卡的标准,但是现在也可以把SD 拿来插上一些外围接口使用,这样的技术便是SDIO。 所以SDIO 本身是一种相当单纯的技术,透过SD 的I/O 接脚来连接外部外围,并且透过SD 上的I/O 数据接位与这些外围传输数据,而且SD 协会会员也推出很完整的SDIO stack 驱动程序,使得SDIO 外围(我们称为SDIO 卡)的开发与应用变得相当热门。 现在已经有非常多的手机或是手持装置都支持SDIO 的功能(SD 标准原本就是针对mobile device 而制定),而且许多SDIO 外围也都被开发出来,让手机外接外围更加容易,并且开发上更有弹性(不需要内建外围)。目前常见的SDIO 外围(SDIO 卡)有: · Wi-Fi card(无线网络卡) · CMOS sensor card(照相模块) · GPS card · GSM/GPRS modem card · Bluetooth card SDIO 的应用将是未来嵌入式系统最重要的接口技术之一,并且也会取代目前GPIO 式的SPI 接口。 2、SDIO总线 SDIO总线和USB总线类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的通信都是由HOST端发送命令开始的,Device端只要能解析命令,就可以相互通信。 CLK信号:HOST给DEVICE的时钟信号,每个时钟周期传输一个命令。 CMD信号:双向的信号,用于传送命令和反应。 DAT0-DAT3 信号:四条用于传送的数据线。 VDD信号:电源信号。 VSS1,VSS2:电源地信号。 3、SDIO热插拔原理 方法:设置一个定时器检查或插拔中断检测 硬件:假如GPG10(EINT18)用于SD卡检测 GPG10 为高电平即没有插入SD卡 GPG10为低电平即插入了SD卡 4、SDIO命令

淘宝主图视频制作教程

淘宝主图视频制作教程_短短的9秒视频就能让大家可以一瞬间让众多观看者关注视频,可以让一个人一夜成名。同样地,淘宝9秒主图视频要的也是这样的效果,可以说是更强大的影响,也就是促进淘宝网内成交率的提升。商品详情页首屏第一个商品主图位置出现的视频,即主图视频。由于商品主图位置是买家进入详情页第一眼所见,因此主图以9秒影音动态的形式呈现,将增加用户在店停留时间,同时有效的在短时间内提升买家对商品的了解,促进买家做出购买决定。 对于商家来说,除了不正规手段,一切能帮助他们提高商品成交率的都是他们所追求的,但基于自身情况的考虑,大部分不希望付出太多的资金,一来,他们怕店铺装修得非常豪华,成交率却毫无起色;其次就是他们即使有信心,但制作出来的主图视频质量不好。这些都会直接营销店铺流量的!这个时候,甩手工具箱制作主图视频功能就能起到很大的作用了。 要想提高商品转化率,就要制作一个主图视频,让你的商品顿时灵动起来,再也不用靠花哨的图片后期处理,也不用绞尽脑汁想如何掳获人心的文字。与其它制作主图视频工具不同的是,甩手工具箱可以利用原来商品素材一键制作主

图视频,节省制作成本,不需要后期剪辑,任何新手都能操作。 制作主图视频步骤: 1、设置制作范围 请根据制作主图视频的范围需求,选择一下整店制作或者是批量制作 a、整店制作(适合制作整店或者店铺分类下主图视频) 输入待制作主图视频的淘宝店铺帐号或者店铺地址,然后点击下一步 b、批量制作(适合制作单个或者多个主图视频) 输入您要生成主图视频的商品地址,点击“下一步" 2、选择待制作商品主图视频的商品 勾选待制作主图视频的商品后,点击“下一步” 3、主图视频设置 选择设置主图视频信息后,点击下一步 4、主图视频详情 勾选制作成功的主图视频商品,点击“下一步”在弹出设置主图视频位置窗体中,点击修改按钮,设置一下存放主图视频位置,最后点击”确定导出“按钮 5.导出商品主图视频文件 导出商品主图视频文件后,可以在淘宝卖家中心编辑宝

用汇编语言实现USB OHCI HCD 驱动程序

用汇编语言实现USB OHCI HCD 驱动程序 高庆 武汉理工大学计算机学院, 武汉 (430073) E-mail: chanchanyuan@https://www.360docs.net/doc/c015572450.html, 摘要:USB驱动是LINUX内核中重要的一部分,各种Linux版本的USB之间会有所差别,但基本原理及接口是一致的, 且现在Linux下USB驱动程序是用C语言实现,本文以符合OHCI规范的USB主机控制器为例,介绍了如何用汇编语言去实现Linux下USB OHCI HCD的驱动程序 关键词:通用串行总线;主机控制器驱动;驱动程序;汇编语言 中图分类号:TP313 1. USB主机驱动结构 现在的USB主机驱动器具有对所有连接在总线上的不同类型USB设备进行管理的功能.如图1所示, Linux USB主机驱动由三部分组成:USB主机控制器驱动(HCD), USB驱动(USBD)和不同的USB设备类驱动.[1] 图1 Linux USB 驱动程序结构 1.1 USB主机控制器驱动(HCD) 在USB主机驱动程序中, HCD是直接与硬件交互的软件模块, 其主要功能:主机控制器硬件初始化; 为USBD层提供相应的接口函数; 提供根HUB(ROOT HUB)设备配置, 控制功能; 实现4种类型的数据传输等。 1.2 USB驱动(USBD) USBD驱动是整个USB主机驱动的核心,它的主要功能有:USB总线管理,USB总线设备, USB总线带宽管理,USB的4种类型数据传输, USB HUB驱动.为USB设备类驱动提供相

关接口,提供应用程序访问的USB系统的文件接口等. USB HUB是一类特殊的USB设备,其驱动程序被包含在USBD层.[1] 1.3 USB设备类驱动 USB设备类驱动是最终与应用程序交互的软件模块, 其主要实现的功能有: 访问USB设备,为应用程序提供访问文件系统的接口等.[1] 2.汇编实现OHCI HCD的思路 2.1 汇编与C 汇编是低级语言,其缺点是用它开发程序周期长,而且与硬件相关,所以可移植性差,即在一台机子上正确运行的程序放在另一台机子上就可能出问题. 但是它的优点在于运行速度快,效率高. 一般操作系统或者一些软件的接口部分会使用汇编来编写,以提高运行效率.特别是对于对性能要求很高的专用计算机上的软件,比如工控,航天等对实时性要求很高的系统,用汇编语言是个很好的选择. 2.2 编写思路 第一, 要了解OHCI的相关实现函数,主要注意这些函数的函数参数 第二, 对每个参数,若是C语言中的系统类型,则可以不用管,若是结构体类型, 则要熟习它的结构及所占内存的长度. 第三,对着OHCI的C语言实现,根据其实现算法,进行编写,这里有个呆板但有效的办法,即逐句翻译C语言的实现. 第四, 对于结构体类型的变量的处理,则要根据结构体字节的偏移提取数据 第五, 对于在C函数中又有调用函数的地方,要对这个调用函数的参数进行压栈处理,再进行调用 3.具体OHCI HCD的实现 Linux OHCI 驱动的所有工作都是在drivers/usb/usb-ohci.c和drivers/usb/usb-ohci.h中实现的. 主要有三个部分,分别是OHCI驱动初始化,OHCI HCD与USBD的连接, OHCI根HUB. 这三个部分实现了OHCI的所有操作及定义 3.1 OHCI 驱动初始化 OHCI驱动初始化使用的函数原型是: int __devinit hc_add_ohci(struct pci_dev *dev, int irq, void *mem_base, unsigned long flags,ohci_t **ohci, const char *name, const char *slot_name) 在这个函数中,会先为ohci分配一个ohci_t结构的结构体内存空间,, 它是OHCI驱动的管理结构.此处有两个结构体,一个是struct pci_dev, 一个是ochi_t,对它们进行上面思路的第四条即可.这个函数的C语言实现中调用了ohci_t hc_alloc_ohci(struct pci_dev *dev, void *mem_base),Void usb_register_buf(int bus), Int request_irq(int ieq, int hc_interrupt, int irqflags, const char *name, ohci_t ** ohci);[2] 对它们,都要先对其变量进行压栈处理.

相关文档
最新文档