如何编译一个可以烧写进手机中的ROM,Android安卓开发者

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编译一个可以烧写进手机中的ROM,Android安卓开发者相关的知识,希望对你有一定的参考价值。

  首先.还是跟其它文章讲的一样.先下载ANDORID的源码.在下源码之前.请看下面第一步
  ----------
  增加代码,下真机配置

  1
  vim .repo/local_manifest.xml

  <?xml version="1.0" encoding="UTF-8"?>
  <manifest>
  <project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.29"/>
  <project path="hardware/htc/dream" name="platform/hardware/htc/dream" revision="master"/>

  </manifest>

  增加上面这段代码,为一个配置.告诉服务器.我们下的代码.是要装进真机的.
  (就为了多下载一个KERNEL下来。。还有下载DREAM的真机配置参数..)

  小哈在这里折腾了很久.很久..非常久..回忆起来内牛满面

  -----
  下相关的代码

  2.

  repo sync

  -----
  3.
  vim env_rc
  加入:
  export EMU=/home/coconut/cupcake/out/host/linux-x86/bin
  export ARCH=arm
  export CROSS_COMPILE=arm-eabi-
  export PATH=$PATH:/home/coconut/cupcake/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin:$EMU

  source env_rc

  4.

  编译内核及无线网络驱动

  $ cd $ANDROID/kernel
  $ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig # 设定默认的msm配置

  #编译内核
  make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-

  #编译无线网络驱动
  cd $ANDROID/system/wlan/ti/sta_dk_4_0_4_32
  make ARCH=arm CROSS_COMPILE=$ANDROID/prebuilt/linux-86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- KERNEL_DIR=$ANDROID/kernel

  //内核拷到目录下
  $ cp $ANDROID/kernel/arch/arm/boot/zImage $ANDROID/vendor/htc/dream-open/kernel
  $ cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko $ANDROID/vendor/htc/dream-open/wlan.ko

  5.
  在HTC网站(developer.htc.com/adp.html)
  下载名为signed-dream_devphone_userdebug-ota-14721.zip的包,并把它放在$ANDROID目录下
  $ cd $ANDROID
  $ source build/envsetup.sh

  $ lunch aosp_dream_us-eng # 指明机型
  这样编译出来.就会在OUT下出来一个DREAM_OPEN的目录.里面就有相关的镜像文件了.

  $ cd vendor/htc/dream-open
  $ ./unzip-files.sh # 解压htc相关驱动
  $ cd $ANDROID
  $ vi buildspec.mk # 新建配置文件

  ----
  Vim htc_dream.mk

  vim /oracle/android/src/vendor/htc/dream-open/htc_dream.mk

  在头部增加
  PRODUCT_PACKAGES := \\
  Calculator \\
  Email \\
  ImProvider \\
  SdkSetup \\
  VoiceDialer

  完成。
  回到根目录

  cd /oracle/android/src
  vim buildspec.mk
  加入( 2010.7.7 不需要加入):
  #TARGET_PRODUCT:=htc_dream
  #TARGET_PREBUILT_KERNEL:=kernel/arch/arm/boot/zImage

  增加:
  CUSTOM_LOCALES:=zh_CN

  然后:

  其中增加环境:
  ubuntu 8.10 , sudo apt-get libelf-dev

  make clean

  // 保证PC有 1280 内存, 加上 1000 SWAP空间..虚拟机也是如此.
  然后开始编译 BOOT.IMG SYSTEM.IMG USERDATA.IMG:
  make -j2

  接下来
  mmm -B $ANDROID/packages/apps/Luancher/ snod

  cd out/target/product/dream-open/

  //先测试:
  emulator -system . -kernel ~/cupcake/prebuilt/android-arm/kernel/kernel-qemu -data userdata.img
  因为出来了BOOT.IMG.这个是真机的..所以不能用BOOT做为内核.要用模拟器来做内核.

  //然后开始烧机
  fastboot flash boot boot.img
  fastboot flash system system.img
  fastboot flash userdata userdata.img

  fastboot reboot
参考技术A 可以去逛一些论坛去学习学习,比如宅科技-极客社区,或者公众号有个 “X神之怒”的大神,你就知道你该干什么了,怎么编译得一步一步学习,希望能帮到你

FPGA中的哪个部分存放烧写的程序

如题,不论用JTAG,还是AS方式,都将把程序烧写进FPGA中,我想问的是程序存储在FPGA的哪个部分

jtag是直接将sof文件下载到fpga中
as是将pof文件下载到prom里(altera自己出的加载flash),然后在上电的时候由fpga自己加载
至于你说的程序是存储在fpga的哪个部分,实际上通俗来讲,你的程序存储在整个fpga内部,包括所有的门连线,总线连线等等都是直接由你的程序控制的
参考技术A 用JTAG方式烧写后,已经在FPGA中没有存储了,相当于这时候已经对FPGA做了编程,断电后FPGA需要重新烧写才能用。通常可以用把image烧到FPGA外部的spi flash中,上电后自动烧到FPGA中。
好像记得spartan系列也有内部带有spi flash了。
参考技术B 那个不是程序,可以说是编程,可以说存在整个芯片中。你去看看FPGA的原理吧 参考技术C FPGA的配置分为在线的JTAG调试(断电后代码消失)和SPI下载(掉电后代码不会消失,再上电后执行下载的代码)。SPI需要下载的专用的外部flash里面,不同的FPGA所用的flash是不同的。

以上是关于如何编译一个可以烧写进手机中的ROM,Android安卓开发者的主要内容,如果未能解决你的问题,请参考以下文章

Android ROM编译调试

s3c2440中为啥sdram一定要安装在bank6-7这两个bank上,我可以安装在别的bank上面吗?

Hi3516开发笔记:通过HiTools使用网口将ubootkernelroofts烧写进eMMC

Hi3516开发笔记:通过HiTools使用网口将ubootkernelroofts烧写进eMMC

FPGA中的哪个部分存放烧写的程序

如何通过uboot烧写rootfs.img 到nand