基于讯为4412开发板的Android开发流程

讯为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             = -1,
};

      然后在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(0),
    },
#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选项,则LEDS_CTL=1,否则为0.

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

    --编译进内核

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

    --以模块编译

#if defined(CONFIG_LEDS_CTL) || defined(CONFIG_LEDS_CTL_MODULE)
struct platform_device s3c_device_leds_ctl = {
        .name   = "leds",
        .id             = -1,
};
#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

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

时间: 2024-08-05 20:19:41

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

4412开发板和4418开发板接口区别说明

迅为iTOP-4412开发板与iTOP-4418开发板的区别对比,两款开发板可广泛适用于工控.智能家居.医疗.多媒体.安防.车载.金融.消费电子.手持设备.显示控制.教学.电力.通讯等领域. 4412开发板与4418开发板接口详细对比   iTOP-4412开发板(全能板) iTOP-4418开发板(全能板) 核心板参数 尺寸 SCP:6cm*7cm/POP:5cm*6cm 5cm*6cm CPU Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz Cortex-A9

Android开发板之串口开发

Android开发板之串口开发 简介 首先描述一下我的应用项目,它是一个简单的智能盒子,主要内容:是通过Android开发板上的串口进行数据的读取操作,一块android开发板外接一个Arduino,再接一个传感器,当传感器上返回数据后在Arduino上进行编程处理,转换成Android程序想要的数据,再通过串口通信输入到Android程序中进行响应操作. 那说完用途,接下来说说这个具体的Android开发,Android的串口编程,在网上我们可以找到开源项目android-serialport

学习嵌入式linux开发板之iTOP-4412 开发板如何操作GPIO

本文转自迅为论坛:http://www.topeetboard.com 平台:迅为嵌入式linux开发板 Exynos4412 所有的 GPIO 都有固定的地址,为了方便操作这些 GPIO,Linux 内核 在 gpio-exynos4.h 里面定义了一些 GPIO 的宏,例如: #define EXYNOS4_GPA0(_nr)  (EXYNOS4_GPIO_A0_START + (_nr)) #define EXYNOS4_GPA1(_nr)  (EXYNOS4_GPIO_A1_START 

迅为嵌入式-iTOP-4418/6848开发板 高端开发平台

iTOP-6818开发板是一款四核ARM 八核开发板与iTOP-4418开发板完全兼容,CPU主频1.4GHz,内存1GB DDR3(2GB可选),存储16GB EMMC,板载千兆以太网,GPS,WIFI蓝牙,陀螺仪等模块,同时支持3G模块,4G模块.可适用于智能家居.医疗.媒体.车载.手持设备.通讯等行业. 核心板参数 尺寸 50mm*60mm 高度 核心板连接器为1.5mm CPU ARM Cortex-A9 四核 S5P4418处理器 1.4GHz 内存 1GB DDR3(2GB可选) 存

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

淘宝店铺:迅为开发板http://arm-board.taobao.com 网站:http://www.topeetboard.com QQ咨询:2551456065 电话咨询:010-58957586 迅为4412开发板提供详细使用手册,丰富配套入门视频教程(不断更新),完善的售后体系,助你轻松入门,快速研发新产品. 核心板参数 尺寸 50mm*60mm 高度 连同连接器在内0.26cm CPU Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz 内存 1GB 双通

[资料]学习必备嵌入式开发板-4412开发板ARM+Android+linux技术全覆盖

迅为4412开发板提供详细使用手册,丰富配套入门视频教程(不断更新),完善的售后体系,助你轻松入门,快速研发新产品. 4412开发板使用手册: 4412开发板配套入门视频教程 01-烧写.编译以及基础知识视频 02-嵌入式Linux视频 03-iTOP-4412开发板硬件设计指导视频 04-Android应用程序视频 05-Android应用教程 06-裸机程序实验文档以及工具文件 07-Linux-x86-Qt5.3.2以及QtE4.7.1应用视频 08-Linux驱动教程2015 核心板参数

迅为开发板知识库-4418开发板编译Android镜像内容分享

迅为4418开发板是基于Ubuntu12.04.2 平台做开发,所有的配置和编译脚本也是基于此平台.如果你对Linux 和Android 开发很熟悉,相信你会根据错误提示逐步找到原因并解决,错误提示一般是选用的平台缺少了某些库文件或者工具等原因造成的:否则,我们建议初学者使用和我们一致的平台,即Ubuntu12.04.2,你可以在我们的网盘下载Ubuntu12.04.2 的镜像,安装的时候请务必参考我们手册提供的步骤,这是我们经过严格测试的,以免遗漏一些开发时所需要的组件. 详情了解:http:

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

本文转自迅为论坛资料:http://www.topeetboard.com 推荐学习嵌入式开发板平台:iTOP-4412开发板 下面这张图出自Google官方,展示了Android系统的主要组成部分. 可以看出,Android系统架构由5部 分组成,分别是:Linux Kernel.Android Runtime.Libraries.Application Framework.Applications.其实这部分SDK文档已经帮我们做得很好了,要做的就是拿来主义,然后再加上自己理解.接下来拿起手

嵌入式开发板 迅为4412开发板 初学ARM开发板首选!提供教学视频!

选择迅为4412开发板无论是学习ARM技术还是开发产品都无须担心,迅为4412开发板提供了丰富的例程源码实例和视频,只需要你有C语言基础,就可以快速学习嵌入式高端技术开发! 搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具快速读取与超大容量,纵使海量思考也能及时处理. 详情了解: http://topeetboard.com   更多了解:https://arm-board.taobao.com