如何编译一个可以烧写进手机中的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安卓开发者的主要内容,如果未能解决你的问题,请参考以下文章
s3c2440中为啥sdram一定要安装在bank6-7这两个bank上,我可以安装在别的bank上面吗?
Hi3516开发笔记:通过HiTools使用网口将ubootkernelroofts烧写进eMMC