讯为4412开发板  使用三星2410芯片,基于arm9架构,由于自己电脑硬件的局限,只能跑Android4.0.3系统。

1、Uboot这个直接使用官方镜像烧写就可以了,一般情况不用去重复烧写。

  略。

  烧写命令:fastboot.exe flash bootloader u-boot-iTOP-4412.bin

2、linux Kernel

  1)设备驱动

    --字符设备驱动

    --杂项设备驱动

    --I2C设备驱动(两种模式

      a,linux内部i2c体系

        包括两部分:i2c设备驱动与i2c总线驱动,总线驱动在kernel里已经存在了,设备驱动请自己写。

        在这里不得不吐槽一下4412开发板,虽然有7个i2c接口,但是只有两个外接!i2c6与i2c7,i2c7外挂的是触摸驱动,应该不能继续外挂其他设备了,因为i2c总线同一时间只能响应一个设备,所以能用的只有i2c6,可惜我使劲了好久,依旧不能request到总线,一直总线忙,return-110 。

      b,使用gpio模拟i2c时序

        模拟i2c需要注意芯片的i2c时序,否则会得不到ack!!这种方法可以使用杂项设备进行注册,驱动和杂项设备驱动类似。

  2)注册到kernel中(平台文件:arch/arm/mach-exynos/mach-itop4412.c

    --字符类设备

       首先声明设备信息,注意里面的.name变量,这个name变量需要和驱动里的.name相同,这样才能顺利进入probe函数中。

struct platform_device s3c_device_XXX ={
.name = "match-name",
.id = -,
};

      然后在platform_device *smdk4x12_devices[] __initdata函数中注册,这样一个字符类设备就注册成功了。

&s3c_device_XXX,

      补上设备驱动里需要的匹配信息

struct platform_driver XXX_driver = {
.probe = XXX_probe,
.remove = XXX_remove,
.shutdown = XXX_shutdown,
.suspend = XXX_suspend,
.resume = XXX_resume,
.driver = {
.name = match-name,  //这个.name就是需要匹配的项
.owner = THIS_MODULE,
}
};

    --i2c驱动

      首先需要确定没有其他驱动占用该i2c总线,以i2c7为例:

static struct i2c_board_info i2c_devs7[] __initdata = {

#ifdef CONFIG_TOUCHSCREEN_TSC2007
{
I2C_BOARD_INFO("tsc2007", 0x48),    //匹配项,从设备地址(读写addr>>1)
.type = "tsc2007",
.platform_data = &tsc2007_info,
.irq = IRQ_EINT(),
},
#endif };

      平台文件已经在init函数里注册好了,所以就只要添加自己的设备名就ok了。

  3)编译

    a,编译进kernel

      打开驱动所在目录下的Makefile和Kconfig文件,以leds点灯为例

      --Makfile

      在最后添加obj-$(CONFIG_LEDS_CTL)        += itop4412_leds.o,生成itop4412_leds.o文件。

      --Kconfig

      在最后添加如下信息:

config LEDS_CTL
bool "Enable LEDS config"
default y
help
Enable LEDS config

    b,以模块编译

      Makefile文件如上。

      Kconfig文件更改如下:

config LEDS_CTL
tristate "Enable LEDS config"
default y
help
Enable LEDS config

    配置信息编写完毕,在Ubuntu里使用make menuconfig命令进入内核配置

    选中Enable LEDS config选项,则CONFIG_LEDS_CTL=1,否则为0.

    同时平台文件中的配置如下:

    --编译进内核

#ifdef CONFIG_LEDS_CTL
struct platform_device s3c_device_leds_ctl = {
.name = "leds",
.id = -,
};
#endif

    --以模块编译

#if defined(CONFIG_LEDS_CTL) || defined(CONFIG_LEDS_CTL_MODULE)
struct platform_device s3c_device_leds_ctl = {
.name = "leds",
.id = -,
};
#endif

    注意这两个还是有一点区别的。

  3)更改linux启动图片

    使用image2Lcd软件把一个bmp图片转换成一个数组

    更改drivers/video/samsung/ iTop-4412.h文件中的第二个数组内容,ok!

    如果只要显示文字,那么图片的背景请设置为黑色:#ffffff

  最后执行make命令就ok了。

  会生成一个zImage文件:arch/arm/boot/zImage

  烧写命令:fastboot.exe flash kernel zImage

 3、Android系统编译

    1)访问设备节点的权限

      打开device/samsung/smdk4x12/conf/init.smdk4x12.rc

      在最后增加chmod 0777 xxx,保存退出。

      注意!!这个文件最后会打包到ramdisk_uboot.img中,所以在烧写system的时候需要同时烧写,否则更改失败。

    2)APP开机自启

      打开device/samsung/smdk4x12/device.mk,以leds为例

#Install LedTest
PRODUCT_COPY_FILES += \
device/samsung/smdk4x12/apk/topeet/ledtest/ledtest.apk:system/app/ledtest.apk
PRODUCT_COPY_FILES += \
device/samsung/smdk4x12/apk/topeet/ledtest/libled.so:system/lib/libled.so

      注释:注意路径问题,并且把文件下载到相应的目录下,即.apk与.so文件都位于device/samsung/smdk4x12/apk/topeet/ledtest目录下。

    3)更改android启动时显示的logo

      这里我就有点取巧啦,直接更改图片资源:frameworks/base/core/res/assets/images

      该目录下有两个文件,android-logo-mask.png这个就是android的启动时显示的图片。

  使用./build_android.sh命令编译Android

  最后会生成system镜像:位于out/target/product/smdk4x12目录下的system.img与ramdisk_uboot.img文件。

  烧写命令:fastboot.exe flash system system.img / fastboot.exe flash ramdisk ramdisk-uboot.img

最后重启:fastboot reboot

---------------------------------------------<完>-------------------------------------------------

基于讯为4412开发板的Android开发流程的更多相关文章

  1. RP4412开发板在Android系统编译生成ramdisk-uboot.img

    荣品RP4412开发板在android系统编译的时候,怎么生成ramdisk-uboot.img生成流程分析: mkimage -A arm -O linux -T ramdisk -C none - ...

  2. iTOP-4418开发板和6818开发板-第五路串口介绍

    iTOP-4418开发板和6818开发板 的除去默认 4 个串口的配置和用法. 4418 的开发板最多支持 5 路串口,如下图所示,4418 的 datasheet.   6818 的开发板最多支持 ...

  3. 【开学季】自学嵌入式开发|四核开发板|4412开发板|ARM+Android+linux技术

    淘宝店铺:迅为开发板http://arm-board.taobao.com 网站:http://www.topeetboard.com QQ咨询:2551456065 电话咨询:010-5895758 ...

  4. 学习嵌入式开发板的Android平台体系结构和源码结构

    本文转自迅为论坛资料:http://www.topeetboard.com 推荐学习嵌入式开发板平台:iTOP-4412开发板 下面这张图出自Google官方,展示了Android系统的主要组成部分. ...

  5. 嵌入式-迅为iTOP-4418/6818开发板编译Android镜像技术分享

    迅为是基于Ubuntu12.04.2 平台做开发,所有的配置和编译脚本也是基于此平台.如果你对Linux 和Android 开发很熟悉,相信你会根据错误提示逐步找到原因并解决,错误提示一般是选用的平台 ...

  6. 用IMX6开发板创建Android模拟器

    基于迅为IMX6开发板 在 AndroidStudio 中,单击“Tools”->“Android”->“AVD Manager”选项.弹出 如下对话框,点击红色方框中的按钮. 弹出如下所 ...

  7. iTOP-3399开发板搭建Android编译坏境

    基于迅为iTOP-3399开发板2.1 装 安装 d android  源码依赖包登录进 Ubuntu 系统,输入“ctrl+alt+t”,打开超级终端,使用“su root”命令,切换到 root ...

  8. 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能

    本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...

  9. 嵌入式开发板iTOP4412学习开发板

    网站:http://www.topeetboard.com 淘宝:https://item.taobao.com/item.htm?_u=okcahs0f42a&id=38712193806 ...

随机推荐

  1. Android 线程的正确使用姿势

    进程优先级(Process Priority) 线程寄宿在进程当中,线程的生命周期直接被进程所影响,而进程的存活又和其优先级直接相关.在处理进程优先级的时候,大部分人靠直觉都能知道前台进程(Foreg ...

  2. WWDC 2013 Session笔记 - iOS7中的多任务

    这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作.如果您觉得本站对您能有帮助, ...

  3. VirtualBox Win7 虚拟机 共享文件夹设置

    1.主机(Win10) 点击共享文件夹,例如D:\VMs\Sharefolder\,选择'属性->共享->共享',选择'Everyone',点击'添加',权限级别'读取/写入',然后一路点 ...

  4. 关于Thread.IsBackground属性的理解(转载)

    C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程.个人感觉这样的解释等于没有解释. .Net中的线程,可以分为后台 ...

  5. Cross-Site Scripting(XSS)的类型

    本文源自: https://www.owasp.org/index.php/Types_of_Cross-Site_Scripting 在原文理解上翻译为中文. 背景 本文描述多种不同类型的XSS攻击 ...

  6. mysql中int、bigint、smallint 和 tinyint的区别

    使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储 ...

  7. EF CodeFirst 创建数据库

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    话说EF支持三种模式:Code First   M ...

  8. Tomcat8启动报there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache

    09-Dec-2016 10:57:49.150 WARNING [localhost-startStop-1] org.apache.catalina.webresources.Cache.getR ...

  9. 腾讯数据总监:运营人员必须掌握的APP基础数据分析体系(没有比这篇更系统全面的)

    导读:在互联网企业,任何一个APP都要事先规划好数据体系,才允许上线运营,有了数据才可以更好的科学运营.因此本文将为大家介绍APP的基础数据指标体系.主要分为五个维度,包括用户规模与质量.参与度分析. ...

  10. html+css复习之第3篇 | jquery | bootstrap

    html+css复习之第3篇 | jquery  | bootstrap