目的
在u-boot中添加驱动程序。
详派肆细举例介绍
在uboot中 *** 作寄存器,实现对gpio及外围设备的控制有两种方法,一种是直接在arch/arm/lib/board.c中添加对寄存器的 *** 作代码,如:
#define muxctrl_reg50x200f0014#define GPIO6_DIR 0x201a0400#define GPIO6_1_DATA0x201a0008 #define GPIO6_1 (1 <<1)#define readl(addr) (*(volatile unsigned int*)(addr))#define writel(val, addr) ((*(volatile unsigned int *) (addr)) = (val)) int clear_irled(void){unsigned int reg_valreg_val = writel(0, muxctrl_reg5)// set gpio modereg_val = readl(GPIO6_DIR) reg_val |= GPIO6_1 writel(reg_val, GPIO6_DIR)reg_val = readl(GPIO6_1_DATA) reg_val &= ~GPIO6_1 writel(reg_val, GPIO6_1_DATA)return 0}void start_armboot (void){init_fnc_t **init_fnc_ptr char *s#ifdef CONFIG_HAS_SLAVEchar *e#endif#if defined(CONFIG_VFD) || defined(CONFIG_LCD)unsigned long addr#endif #ifdef CONFIG_HI3516A // defined in the include/configs/hi3516a.hclear_irled() // clear ir led, add by yangzheng 2016.9.21#endif
来尘纤轿自CODE的代码片
snippet_file_0.txt
另一种方法:
1、在driver/下新建hi_gpio目录,如:
[yangzheng@centos6 hi_gpio]$ ls
hi_gpio.c Makefile
hi_gpio.c内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[yangzheng@centos6 hi_gpio]$ cat hi_gpio.c/********************************************************************************** Copyright: (C) 2016 Yang Zheng<竖轿Zheng.yang@avatarcontrols.com> * All rights reserved.** Filename: hi_gpio.c*Description: This file* *Version: 1.0.0(09/21/2016~)* Author: Yang Zheng <zheng.yang@avatarcontrols.com>* ChangeLog: 1, Release initial version on "09/21/2016 05:41:41 PM"* ********************************************************************************/#include<common.h>#define readl(addr) (*(volatile unsigned int *) (addr))#define writel(val, addr) (*(volatile unsigned int *) (addr) = (val)) #define muxctrl_reg5 0x200f0014#define GPIO6_DIR 0x201a0400#define GPIO6_1_DATA0x201a0008#define GPIO6_1 1 <<1#define REG_SET 1#define REG_CLR 0 #ifdef DEBUG#define DPRINTF(args...) printf(args)#else#define DPRINTF(args...)#endif int clear_irled(void){unsigned int reg_valreg_val = writel(REG_CLR, muxctrl_reg5)// set gpio modereg_val = readl(GPIO6_DIR) reg_val |= GPIO6_1 writel(reg_val, GPIO6_DIR)writel(REG_CLR, GPIO6_1_DATA) DPRINTF("clear ir led...\n")return 0}
来自CODE的代码片
snippet_file_0.txt
Makefile如下(可以拷贝driver目录下的各模块模板):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[yangzheng@centos6 hi_gpio]$ cat Makefile## Copyright 2000-2008# Wolfgang Denk, DENX Software Engineering, wd@denx.de.## See file CREDITS for list of people who contributed to this# project.## This program is free softwareyou can redistribute it and/or# modify it under the terms of the GNU General Public License as# published by the Free Software Foundationeither version 2 of# the License, or (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTYwithout even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this programif not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston,# MA 02111-1307 USA# include $(TOPDIR)/config.mk LIB := $(obj)libhi_gpio.a COBJS-$(CONFIG_HI3516A_GPIO)+= hi_gpio.o COBJS := $(COBJS-y)SRCS:= $(COBJS:.o=.c)OBJS:= $(addprefix $(obj),$(COBJS)) all:$(LIB) $(LIB): $(obj).depend $(OBJS)$(AR) $(ARFLAGS) $@ $(OBJS) ######################################################################### # defines $(obj).depend targetinclude $(SRCTREE)/rules.mk sinclude $(obj).depend ########################################################################
来自CODE的代码片
snippet_file_0.txt
2、在顶层Makefile添加如下代码:
LIBS += drivers/hi_gpio/libhi_gpio.a
3、在include/configs/hi3516a.h中添加如下代码:
#define CONFIG_HI3516A_GPIO
在include下增加hi_gpio.h文件,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[yangzheng@centos6 u-boot-2010.06]$ cat include/hi_gpio.h/******************************************************************************** * Copyright: (C) 2016 Yang Zheng<Zheng.yang@avatarcontrols.com>* All rights reserved. * * Filename: hi_gpio.h *Description: This head file is control hisi gpio * *Version: 1.0.0(09/21/2016~) * Author: Yang Zheng <zheng.yang@avatarcontrols.com>* ChangeLog: 1, Release initial version on "09/21/2016 06:09:49 PM" * ********************************************************************************/#ifndef __HI_GPIO_H__#define __HI_GPIO_H__ extern int clear_irled(void)#endif
来自CODE的代码片
snippet_file_0.txt
4、在arch/arm/lib/board.c 里面调用即可,如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[yangzheng@centos6 u-boot-2010.06]$ vim arch/arm/lib/board.c void start_armboot (void){init_fnc_t **init_fnc_ptr char *s#ifdef CONFIG_HAS_SLAVEchar *e#endif#if defined(CONFIG_VFD) || defined(CONFIG_LCD)unsigned long addr#endif #ifdef CONFIG_HI3516A_GPIO clear_irled() // clear ir led, add by yangzheng 2016.9.21#endif……
来自CODE的代码片
snippet_file_0.txt
重新编译即可,调试uboot的方法:
如果设备有网口,可用tftp服务下载:
sf probe 0
mw.b 82000000 ff 0x80000
tftp 82000000 u-boot.bin
Go 82000000
如果没有网口,可用串口下载:
sf probe 0
mw.b 82000000 ff 0x80000
loady 82000000 u-boot.bin
go 82000000
答:
用Boot camp助理工具。Boot camp助理工具在Mac Os电脑中已经默认有了,而Boot Camp 驱动程序则需要你通过Boot camp助理工具去下载就可以了。
具体 *** 作方法如下:
1,先通过Boot Camp 助理在 Mac 上动态的,无损的分割出一个用于安装 Windows *** 作系统的分区明唯尘 ,安装Windows *** 作系统后,再安装 Boot Camp 驱动程序。
2,再运行Boot Camp 助理工具来安装Windows程序,然后再安装Boot Camp驱动程序。
3,Boot camp助理工具在Mac Os电脑中已激禅经山配默认有了。
4,之后就可以继续安装了。
步骤一 先使用Boot Camp 分割磁盘1.在Finder工具条中点选“前往”按钮,在d出的菜单中选择“实用工具”:2.在打开的“实用工具”窗格中,选择“实用工具”谨拦资料夹下的“Boot Camp助理”程式:
3.执行BootCamp程式,打开“BootCamp助理”窗格第一步,是BootCamp的介绍,可直接点击“继续”按钮进了下一步:
4.在此步,是从当前硬盘中给将要安装的MS windows *** 作系统的系统分区的重要一步。可以“使用32G”分区,也可以均等分割,也可以拖动中间的小点按需要划分,具体根据使用情况来定。Win7较XP要多些空间,同时如果你将在Windows中安装较多程序的话也建议多分一点,但一般50G都应该足够了:
5.大小确定后点击右下角的“分区”按钮开始分区,很人性化的有进度条显示,而不像WINDOWS系统一样分区只有干等着:
6.稍等一会,分区完毕,切换到“开始安装Windows”界面,提示插入系统光盘:
7.系统光盘插入后直接点击右下角的“开始安装”按钮,一会系统系统会自动重启。
重启正确读取光盘后,会直接进入到我们熟悉的Windows安装界面。
步骤二 安装Windows OS
1.重启进入分区界面后,一定要选择BOOTCAMP的分区,然后点选“Driveoptions(advanced)”按钮:
2.在下一界面中,单击“Format”按钮,先将把分区格式化成NTFS格式:
3.后面的 *** 作就和MS Windows安装步骤一样了,直接等安装过程完成,直到出现Windows桌面即可:
步骤三 为Windows安装驱动
1.待系统安装完毕后,如果提示祥世胡安装驱动,先不要安装集成的驱动;
2.将苹果电脑随带的苹果系统光盘播放光驱,让系统自动安装完成BootCamp驱动,双击光盘内的Setup.exe程序:
3.打开欢迎使用boot camp安装返弊程序:
4.在“Boot Camp”窗口上,点击“下一步”;
5.之后一路点击“下一步”,完成所有驱动以及软件的安装;
6.在最后一步建议勾选上“apple software update(windows版)”复选框:
7.单击“安装”按钮开始安装;
8.安装完毕后机器会自动重启,并进入Windows *** 作系统;
9.进入windows系统后建议并运行Apple Software Update软件,对驱动进行更新:
10.在以后需要切换系统时,可以在开机时按住ALT键,会d出系统选择功能:
11.按键盘上的方向键选择好系统后按回车键即可进入相应的系统。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)