iTOP4412_main_Clasics_v3_2_structure
0605_iTOP-4412的GPIO是怎么操作的

s3c_gpio_pull_t pull);
unsigned (*get_config)(struct s3c_gpio_chip *chip, unsigned offs); int (*set_config)(struct s3c_gpio_chip *chip, unsigned offs,
unsigned config); }; 通过上面的代码我们可以看到这个结构体里主要是一些函数指针,get_pull 是 获取 GPIO 的上拉状态,set_pull 是设置 GPIO 上拉或下拉的,set_config 是设 置 GPIO 的工作模式,例如:输出/输入/其他功能。下面我们来看看 gpio_cfg 变量的定义,如下: static struct s3c_gpio_cfg gpio_cfg = {
for (i = 0; i < nr_chips; i++, chip++) { if (chip->config == NULL) chip->config = &gpio_cfg; if (chip->base == NULL) pr_err("No allocation of base address [4212 gpio]");
int nr_chips) {
for (; nr_chips > 0; nr_chips--, chip++) { samsung_gpiolib_add_4bit(chip); s3c_gpiolib_add(chip);
} } 上面的代码主要有两个函数组成分别是 samsung_gpiolib_add_4bit(chip)和 s3c_gpiolib_add(chip),首先我们来看下 samsung_gpiolib_add_4bit(chip)函 数的实现: void __init samsung_gpiolib_add_4bit(struct s3c_gpio_chip *chip) {
解析迅为三星iTOP解析迅为三星iTOP-4412开发板硬件接口功能

解析迅为三星iTOP-4412开发板硬件接口功能本帖最后由xunwei 于2014-1-9 15:18 编辑iTOP-4412开发板底板iTOP-4412开发板提供了丰富的底板外设,标配WIFI和蓝牙模块,连接LCD或HDMI 显示器可实现通过无线wifi进行视频播放:下面对底板功能模块分别进行相关阐述:1、以太网接口通过一条RJ45线,连接这个接口到PC或者路由器,甚至到另外一个开发板,可实现有线以太网络通讯。
连接成功以后,两台机器的IP地址要设置在同一个网段,即同一个子网(例如:192.168.0.x),这样双方就可以通过PING命令来通讯了:ping 192.168.0.88至此,上层应用可以通过socket协议实现端到端的数据通讯,完成各种网络应用。
网络接口芯片采用LAN9215,这颗芯片稳定可靠,适合工业应用,通过16位数据总线以及6位地址总线与处理器交换数据,在通讯速率等方面要优于其他方案。
2、HDMIExynos 4412内置HDMI控制器,不需要外接转换芯片即可输出高性能1080P高清影像:该接口可以与LCD接口同步输出,没有购买LCD的用户可以直接使用HDMI接口连接普通显示器或者电视,显示效果十分理想,软件稍作调整,就是一个高性能的机顶盒了,如下图:3、WIFI与蓝牙WIFI和蓝牙由同一颗芯片来实现,三星自家模组:开发板出厂时会标配这个模组,以方便用户使用。
WIFI和蓝牙共享一颗天线,通过分时切换的方式兼顾两者应用,这样做并不会影响速度,而且成了平板或者手机设计的传统做法。
4、LCD接口如上图所示,左边是TP触摸屏接口,右边是LVDS标准的LCD接口,上面的芯片将RGB信号转换成LVDS;为了兼容RGB接口的屏幕,在开发板的背面引出同规格的兼容RGB标准的液晶接口;配套开发板使用的是款9.7寸LCD屏幕,与IPAD 屏幕大小及规格兼容,TP为十点触控:5、触摸屏TP接口开发板留出了单独的触摸屏TP接口,配套TP支持十点触控操作。
uboot框架熟悉(一)itop4412-uboot2015引导阶段程序在各存储介质的分布

uboot框架熟悉(⼀)itop4412-uboot2015引导阶段程序在各存储介质的分布 本⽂分析itop4412开发板在uboot引导启动阶段,程序在各存储介质的分布情况,为理解uboot代码框架提供基础。
以uboot2015为例,以外部SD/MMC作为启动介质。
⽬录⼀、itop4412-uboot2015镜像⽂件组成⼆、itop4412-uboot启动流程1>> 开机运⾏iROM中的代码2>> BL1阶段3>> BL2(SPL)阶段4>> uboot第⼆阶段代码⼀、itop4412-uboot2015镜像⽂件组成 在ubuntu中将uboot镜像烧写到SD卡的命令如下,功能是将uboot镜像⽂件itop4412-uboot.bin⽂件烧写到SD卡第1个扇区开始的地⽅: dd iflag=dsync oflag=dsync if=itop4412-uboot.bin of=/dev/sdb seek=1 其中itop4412-uboot.bin由如下⽂件制作成: cat E4412_N.bl1.SCP2G.bin bl2.bin env.bin u-boot.bin > itop4412-uboot.bin 其中, E4412_N.bl1.SCP2G.bin :8KB,三星提供的bin⽂件,没有源码,下⽂称为BL1 bl2.bin :16KB,uboot启动第⼀阶段代码,在uboot2015中称为SPL阶段,下⽂称为BL2 env.bin :8KB,内容是全0的bin⽂件,在SD卡中占位8KB⽤于存储uboot的环境变量 u-boot.bin :⼩于512KB,uboot启动第⼆阶段代码 因此,itop4412 uboot2015镜像组成⽂件中,bl2.bin和u-boot.bin是移植uboot2015编译⽣成,其他⼏个是现成的bin⽂件,直接从讯为提供的SDK 中获取。
iTOP-4412以模块的方式编译内核驱动

iTOP-4412以模块的方式编译驱动大家好,本章节我们将向大家讲解如何在linux下实现以模块的方式加载内核驱动。
我们以内核里面蜂鸣器的驱动为例来讲解。
1)首先打开内核的源码,如下图所示:2)使用命令“cd drivers/char/”,进入到蜂鸣器驱动所在的目录,如下图所示:3)然后使用命令“vi Kconfig”打开当前目录下的内核配置文件,如下图所示:4)然后找到“config BUZZER_CTL”所在的位置,如下图所示:5)然后把“bool"Enable BUZZER config"“一行改成”tristate"Enable BUZZER config"“,如下图所示:6)然后保存并退出,如下图所示:7)然后回到内核源码的根目录下,如下图所示:8)然后输入命令”make menuconfig“配置内核,如下图所示:9)选择”Device Drivers“->"Character devices"->"Enable BUZZER config",如下图所示:10)然后把”Enable BUZZER config“左边的”*“改成”M“,如下图所示:11)然后保存并退出配置界面,如下图:12)然后使用命令”vi arch/arm/mach-exynos/mach-itop4412.c“打开mach-itop4412.c,如下图所示:13)然后找到”struct platform_device s3c_device_buzzer_ctl“一行,如下图所示:14)把这一行前面的”#ifdef CONFIG_BUZZER_CTL“改成”#if defined(CONFIG_BUZZER_CTL)|| defined(CONFIG_BUZZER_CTL_MODULE)“,如下图所示:15)然后找到”&s3c_device_buzzer_ctl“一行,如下图所示:16)把这一行前面的”#ifdef CONFIG_BUZZER_CTL“改成”#if defined(CONFIG_BUZZER_CTL)|| defined(CONFIG_BUZZER_CTL_MODULE)“,如下图所示:17)然后保存并退出,返回到linux内核源码的根目录下,如下图所示:18)然后输入命令”make“,开始编译内核,如下图所示:19)编译完成后会在内核的”arch/arm/boot“目录下生成镜像文件”zImage“,如下图所示:20)在内核的”drivers/char“目录下生成了蜂鸣器的驱动模块”itop4412_buzzer.ko“,如下图所示:21)下一步我们烧写生成的zImage到开发板上,然后开发板启动进入到android系统。
【资源分享】迅为 iTOP-4412开发板平台详解

【资源分享】迅为iTOP-4412开发板平台详解开发板是一个相对复杂的电子系统,请耐心按照本章说明组装,以免造成不必要的损失。
用户最好使用迅为提供的连接线,因为有些部件是专门定制的,可能和市场上购买的其它连接线和部件不匹配,擅自使用市场上购买的接线或者部件可能损伤开发板。
在完全弄清楚开发板接口信号定义之前,如果本文档中没有提到该部件和您在市场上所购买的部件兼容,不要擅自使用自己购买的接线和其它部件,如有疑问请咨询我司技术人员。
开发板的组装控制台(Console)串口使用串口线连接开发板的COM3 到PC 机的串口,如果PC或笔记本没有串口,就需要准备一条USB转串口的设备。
注意:插拔串口,要在断电的情况下进行,以免带电插拔出现器件损坏。
PC 上对串口的操作软件请参考“3.1 超级终端的安装和使用”。
Exynos 4412 共有四个串口,其中CON3 是作为系统的调试串口,如下图所示:屏幕的连接从外观上来看,开发板有2 个HDMI 接口,其实只有一个可以接到HDMI 显示器上。
如下图所示:外形较大的HDMI-A 接口(上图中红色方框内的接口),只能连接迅为提供的7 寸屏幕或者9.7 寸屏幕,里面有5V(或者 3.3V)电源,绝对不能接到HDMI 显示器上。
使用迅为提供的HDMI 线是可以防呆的,不会接错,在用户弄清楚信号之前,不要擅自使用自己购买的HDMI 线!外形较小的HDMI(上图褐色方框内的接口)是标准的HDMI-C 接口(不属于国际标准,但是在很多电器设备中都有使用,属于日本SONY 公司定义的一种HDMI 接口,具体可以百度),建议使用我司的C 口转A 口的HDMI 线连接。
iTOP-4412 精英版除了使用HDMI 线连接屏幕外,也可以通过用户平常使用的软排线的方式来连接,如下图所示:上图中两个红色方框内的LCD 接口信号是自定义的接口,只能连接迅为提供的屏幕,和其它公司的屏幕并不保证完全兼容,这点大家一定要注意!电阻屏的连接(4.3 寸屏幕)iTOP-4412 精英版可支持4.3 寸电阻屏幕,连接方式如下图所示:4.3 寸屏幕的接口是翻盖式的,软排线带有金属触点的一面朝下连接。
iTOP-4412以模块的方式编译内核驱动

iTOP-4412以模块的方式编译驱动大家好,本章节我们将向大家讲解如何在linux下实现以模块的方式加载内核驱动。
我们以内核里面蜂鸣器的驱动为例来讲解。
1)首先打开内核的源码,如下图所示:2)使用命令“cd drivers/char/”,进入到蜂鸣器驱动所在的目录,如下图所示:3)然后使用命令“vi Kconfig”打开当前目录下的内核配置文件,如下图所示:4)然后找到“config BUZZER_CTL”所在的位置,如下图所示:5)然后把“bool "Enable BUZZER config"“一行改成”tristate "Enable BUZZER config"“,如下图所示:6)然后保存并退出,如下图所示:7)然后回到内核源码的根目录下,如下图所示:8)然后输入命令”make menuconfig“配置内核,如下图所示:9)选择” Device Drivers “->"Character devices"->"Enable BUZZER config",如下图所示:10)然后把” Enable BUZZER config “左边的”*“改成”M“,如下图所示:11)然后保存并退出配置界面,如下图:12)然后使用命令” vi arch/arm/mach-exynos/mach-itop4412.c“打开mach-itop4412.c,如下图所示:13)然后找到” struct platform_device s3c_device_buzzer_ctl “一行,如下图所示:14)把这一行前面的” #ifdef CONFIG_BUZZER_CTL“改成”#if defined(CONFIG_BUZZER_CTL) || defined(CONFIG_BUZZER_CTL_MODULE) “,如下图所示:15)然后找到” &s3c_device_buzzer_ctl“一行,如下图所示:16)把这一行前面的” #ifdef CONFIG_BUZZER_CTL“改成”#if defined(CONFIG_BUZZER_CTL) || defined(CONFIG_BUZZER_CTL_MODULE) “,如下图所示:17)然后保存并退出,返回到linux内核源码的根目录下,如下图所示:18)然后输入命令”make“,开始编译内核,如下图所示:19)编译完成后会在内核的” arch/arm/boot“目录下生成镜像文件”zImage“,如下图所示:20)在内核的” drivers/char“目录下生成了蜂鸣器的驱动模块” itop4412_buzzer.ko “,如下图所示:21)下一步我们烧写生成的zImage到开发板上,然后开发板启动进入到android系统。
iTOP-4412实现web控制led

color: #00F; font-size: 18px; } .hsz { background-color: #FCC; } .juzhong table { text-align: center; }
iTOP-4412 开发板
日期:2015-4-27
<tr> <td>Led1</td> <td><input name="led1" type="checkbox" id="led1" value="1"
/> <label for="led1"></label></td>
</tr> <tr>
日期:2015-4-27
5
font-size: 24px; } .STYLE1 {font-size: 36px} </style> </head>
iTOP-4412 开发板
<body class="juzhong"> <table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
日期:2015-4-27
16
北京迅为电子有限公司
iTOP-4412 开发板
通过上图我们可以看到 iTOP-4412 开发板已经起来了,然后打开 PC 的浏览器, 输入开发板的 ip 地址,如下图所示:
嵌入式4412开发硬件平台之基础介绍

本文转自4412开发板实战书籍:硬件介绍嵌入式系统的硬件除了核心部件——嵌入式处理器外,还包括存储器系统、外围接口部件以及连接各种设备的总线系统。
其中,存储器是嵌入式系统存放数据和程序的功能部件,而外围设备决定了应用于不同领域的嵌入式系统的独特功能。
嵌入式处理器是嵌入式系统中硬件的核心组成部分,但是若没有存储器和I/O设备,它就无法具有各种实用的功能。
嵌入式处理器通常集成了大量的I/O模块单元(如中断控制器和通信控制器等)和存储器(Flash和RAM等)。
当嵌入式处理器上集成的存储器单元和I/O 单元不够时,可以通过扩充组成强大的嵌入式硬件系统。
嵌入式系统的硬件是以嵌入式处理器为中心,由存储器、I/O单元电路、通信模块、外部设备等必要的辅助接口组成的,如下图所示。
在实际应用中,嵌入式系统硬件配置可能非常精简,除了微处理器和基本的外围电路以外,其余的电路可以根据需要和成本进行裁剪、定制。
在嵌入式系统中使用的存储器可以是内部存储器,也可以是外部存储器。
通常处理器的内部存储器是非常有限的。
对于小型应用,如果这些存储器够用,就不必使用外部存储器;否则,就必须进行扩展,使用外部存储设备。
与通用计算机把应用软件和操作系统放在外存的工作方式不同,嵌入式系统的软件通常直接存放在内存(如Flash)中,上电之后可以立刻运行;当然,也有的嵌入式系统的软件从外存启动、装载并运行。
无论如何,需要考虑嵌入式系统的软件的固化问题,而这一问题在通用计算机(如PC机)上开发软件是不需要考虑的。
此外,考虑存储器系统时,还需要考虑嵌入式系统软件的引导问题。
嵌入式处理器工作时必须有附属电路支持,如时钟电路、复位电路、调试电路、监视定时器、中断控制电路等,这些电路并不完成数据的输入/输出功能,而是为嵌入式处理器的工作提供必要的条件。
在设计嵌入式系统的硬件电路时,常常将它们与嵌入式处理器设计成一个模块,形成处理器最小系统。
嵌入式处理器在功能上有别于通用处理器,其区别在于嵌入式处理器上集成了大量的I/O电路。