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

发布者:名字太长了吗最新更新时间:2022-01-29 来源: eefocus关键字: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选项,则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


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


关键字:Android  开发流程 引用地址:基于讯为4412开发板的Android开发流程

上一篇:嵌入式4412开发板QT5.7编译安装到arm
下一篇:基于iTop4412的FM收音机系统设计(一)

推荐阅读最新更新时间:2024-11-16 20:04

Android Wear要死了?高通智能手表处理器已两年未更迭
  虽然大部分的旗舰处理器芯片的更迭周期仅有一年时间,但再过一周时间Wear 2100就迎来两周岁的生日。这款专门面向Android Wea平台的处理器于2016年2月份发布,不过去年 高通 并未发布继任处理器,而且似乎 高通 也没有打算推出后续产品的意思。这似乎已经意味着 高通 已经放弃了 智能手表 市场。下面就随企小编一起来了解一下相关内容吧。 Android Wear要死了?高通智能手表处理器已两年未更迭   对于健康的处理器市场来说,高通此举无伤大雅。高通觉得利润微薄放弃 智能手表 市场,所有Android Wear厂商还可以从其他供应商购买高质量的处理器继续满足市场需求。   然而问题的关键在于当前处理器市场非常
[嵌入式]
欧盟正式指控谷歌搜索存在垄断 将调查安卓系统
    北京时间4月15日晚间消息,欧盟委员会周三正式指控谷歌,称谷歌在搜索结果中偏袒自己的Google Shopping服务,从而欺骗了竞争对手。此外,欧盟还对谷歌Android操作系统展开了反垄断调查。   欧盟反垄断专员玛格丽特·韦斯塔格(Margrethe Vestager)今日在一份声明中称,已经向谷歌发出了“异议声明”。“异议声明”是描述调查结果的正式文档,“异议声明”发出后,谷歌可以调整自己的商业行为,然后与欧盟和解。但如果认为“异议声明”不公平,谷歌也可以据理力争。   韦斯塔格说:“谷歌赋予自己的Google Shopping服务以不公平的竞争优势,我对此感到担忧,这违反了欧盟反垄断法。如果调查结果证实了我
[手机便携]
一加8系列迎来ColorOS 12公测:基于安卓12开发
近日,一加8系列进行了的基于安卓12进行开发的ColorOS 12公测系统推送,此次推送将是一加所有公测推送中,量级最大的一次。 据悉,此次更新推送的用户还将包含原本的ColorOS 12的内测用户,以及此前报名公测申请,并通过审核的用户。 而从一加与OPPO此前的惯例来看,在公测版系统进入测试版流程后,过一段时间就是全量的正式版推送,预计一加8/8T/8 Pro普通用户不会等太久也能用上ColorOS 12了。 相比此前的系统,ColorOS 12加入了跨屏互联功能,并引入了全新的响应式设计系统,并在自由浮窗,隐私权限等方面做出了相应的优化提升。 但同时,根据一加官方公告的消息,当前的公测版系统已经出现了一些Bug。 当
[手机便携]
一加8系列迎来ColorOS 12公测:基于<font color='red'>安卓</font>12<font color='red'>开发</font>!
Moto Z2 Play接收了Android 9.0 Pie更新
IT之家9月28日消息 摩托罗拉公司的Moto Z2 Play手机是一台古老的中档智能手机,但它并没有被官方抛弃,该设备在两年多前在市场上首次亮相,并且已经在运行Android 8.0 Oreo。但是,摩托罗拉计划通过发布新的系统更新,为这款老手机注入了新的活力。 XDA开发人员报告称,Moto Z2 Play现在开始通过OTA更新到Android 9.0馅饼。这是Moto Z2 Play将获得的最后一次重大操作系统更新。 目前已经开始巴西开始推送此次更新,其他国家地区可能需要等待一段时间,美国可能将是获得更新的最后几个国家之一。本次更新随附9月安全补丁以及所有Android Pie的新功能 2017年6月份,联想发布了全新的
[手机便携]
亚马逊Echo用户中55%拥有iPhone 高于拥有Android手机
调研机构Consumer Intelligence Research Partners(CIRP)最新调查报告显示,美国地区亚马逊(Amazon)Echo装置使用者,拥有苹果(Apple)iOS移动装置占比,高于Android装置。Google Home装置用户,则是偏好使用Android生态系装置。   该机构系于2017年7月11~27日,针对美国地区300名亚马逊Echo或Google Home装置拥有者,进行智能型手机与平板电脑装置拥有调查。   结果显示,在亚马逊Echo装置用户中,有55%用户拥有iPhone手机,高于拥有Android手机的用户占比。而在Google Home装置用户中,则是有77%用户拥有Andro
[手机便携]
高通创新中将发布Snapdragon GameCommand™应用程序
圣迭戈,2012年1月5日 —— 高通公司(NASDAQ: QCOM)今天宣布,其全资子公司高通创新中心(QuIC)将于2012年1月10日消费电子展(CES)开幕当天,在Android Market发布Snapdragon GameCommand™应用程序。Snapdragon GameCommand旨在使移动用户能够快速发现、管理并访问那些针对Snapdragon平台进行优化的最新独家特色游戏。该应用程序还将提供来自顶级游戏新闻网站的最新消息,帮助消费者了解最新的游戏资讯。 Snapdragon GameCommand将使用户能够方便地经由多款手机和平板电脑访问并体验100多款Snapdragon™ GamePack主题游戏
[手机便携]
至少有1000万名Android用户转向了iPhone?
    毋庸置疑的是,Android系统是世界手机行业里的龙头老大,但谷歌和苹果经常都会表示,对方用户已经转移到自家的阵营中了。Google Play Store内的一款应用数据显示,在过去两年里,有至少1000万名Android用户“投奔”到iOS平台上了。 至少有1000万名Android用户转向了iPhone?     这款应用为Move to iOS,该应用可帮助Android用户轻松把Android手机上的内容及应用转移到苹果iPhone上。值得一提的是,该应用的开发者就是苹果,该公司希望通过该应用帮助更多Android用户转移到iOS平台上,以此刺激iPhone销量。   去年10月,就有100万——500万
[手机便携]
Android之父:未来智能机或可精简成AI
    据外媒报道,在彭博科技大会上,Android联合创始人安迪·鲁宾畅想了一个人工智能强大到足以支撑起每一款联网设备的未来。 Android联合创始人安迪·鲁宾(图片来自theverge)   安迪·鲁宾表示,量子计算和人工智能的方面的进步,或催生出一个能够增强任一科技领域的‘有意识的智能’——“如果有了这么强大的计算力,你或许只需拥有‘1个’。它或许不需要让你真地‘随身携带’,但必须要有感知”。     尽 管听起来是个古怪的理论,但安迪·鲁宾的投资基金(Playground Global)正在到处投资试图实现这一未来设想的企业,其中就有一家没被 Rubin点名的量子计算公司。这家公司的研究人员们或有朝一日通过标准
[手机便携]

推荐帖子

MSP430制作最小系统问题
制作做小系统的时候,提供的3.3V电源是怎么由5V电压产生的?有明白的详细解释一下MSP430制作最小系统问题我的实验板上用ASM11173.3V稳压芯片提供的电压,输入是5V左右。我的实验板上用ASM11173.3V稳压芯片提供的电压,输入是5V左右。我对这些也不了解,我的实验板上用ASM11173.3V稳压芯片提供的电压,输入是5V左右。
yuzejun2321 微控制器 MCU
电子设计测量组推荐书目
本帖最后由paulhyde于2014-9-1509:17编辑人民邮电出版社)沈建华北航出版社夏宇闻北航出版社电子设计测量组推荐书目本帖最后由paulhyde于2014-9-1509:18编辑共同分享嘛!大家还有什么书可以推荐的欢迎提出来!
cdy200824 电子竞赛
ispLever6.0引脚分配问题:部分输入输出脚无法在top view中定义,红色显示
引脚分配时出现部分引脚没有在spreadsheetview的PINattribute中出现,在左侧双击之,则会在其中出现,但是topview中则在左侧红色显示,未能完成相应的变化,一直无法更改。不知有谁碰到过类似问题没有,我使用的环境是ispLever6.0.ispLever6.0引脚分配问题:部分输入输出脚无法在topview中定义,红色显示
eeleader FPGA/CPLD
基于fpga的FIR滤波器设计(附上源码代码下载)
1.1顶层接口完整源码及完整文章下载技术交流群:97925396新建目录:D:\mdy_book\fir_prj。在该目录中,新建一个名为fir_prj.v的文件,并用GVIM打开,开始编写代码。我们要实现的功能,概括起来就是FPGA产生控制AD9709,让其中的通道A未滤波的正弦信号,让通道B输出滤波后的正弦信号。为了控制AD9709的工作模式,就要控制AD9709的MODE、SLEEP管脚;为了控制通道A,就
njiggih FPGA/CPLD
S3C6410 CE6 RAM从128M升级到256M,修改config.bib和image_cfg.h,导致无法启动系统了。
config.bib如下 IFIMGMULTIXIP! #defineNKNAMENK #defineRAMNAMERAM #defineNKSTART80100000 IFSMDK6410_X5D #defineNKLEN02100000;33MB #defineRAMSTART82200000 #defineRAMLEN01300000;19MB(
lustring 嵌入式系统
请问在usb设备的驱动中的控制码(ControlCode)的具体值是多少?
我想实现usb设备与电脑的通信,usb的驱动是用了别人的,通过给驱动程序发送消息来实现设备与pc机的通信,但是在驱动中的一个函数的参数是控制码,因为不知道这个控制码的值所以不知道该传一个什么样的值给那个函数。请教下有过这方面驱动开发的高人帮下忙,谢咯。请问在usb设备的驱动中的控制码(ControlCode)的具体值是多少?欢迎来我这里,我usb通信很熟悉陕西杨工c8051f单片机博客手机13002928013http://c8051fmcu.blog.sohu.com。。。。。。
xhwang2003 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved