Rockchip Android编译说明

合集下载

RKXX Android平台以太网调试说明 V1.2

RKXX Android平台以太网调试说明 V1.2

密级状态:绝密()秘密()内部(√)公开()RKXX Android平台平台以太网调试说明(技术部,MID组)文件状态:[]正在修改[√]正式发布当前版本:V1.1作者:胡卫国完成日期:2013-09-29审核:完成日期:福州瑞芯微电子有限公司Fuzhou Rockchips Semiconductor Co.,Ltd(版本所有,翻版必究)版本历史版本号作者修改日期修改说明备注V1.0胡卫国2013-09-29初始版本V1.1胡卫国2014-3-3增加USB以太网调试说明V1.2胡卫国2014-6-25重新整理相关补丁目录1以太网说明 (3)2VMAC模块软件配置 (4)2.1K ERNEL配置 (4)2.2板级文件修改 (4)2.3PHY电源控制 (5)2.4MAC地址问题 (5)3USB以太网模块软件配置 (5)4常见问题及排查 (7)4.1以太网与W I F I优先级问题 (7)4.2使用以太网时有些应用无法上网 (7)4.3VMAC部分 (7)4.3.1机器不断重启 (8)4.3.2以太网无法连接上 (9)4.3.3开机概率性无法连接上以太网 (9)4.3.4组播(multicast)功能无法使用 (10)4.3.5RX存在丢包现象 (10)4.4USB以太网部分 (11)4.4.1以太网无法使用问题排查 (11)4.4.2USB以太网不稳定 (12)4.4.3RTL8152由于无MAC地址导致异常进不了Android系统 (13)5补丁下载地址 (13)1以太网说明目前RK MID平台支持以下两种以太网1.使用主控的VMAC模块加上外接的PHY实现;2.使用USB以太网卡实现;目前支持的PHY芯片有:LAN8720ARTL8021F支持的USB以太网卡有:dm9620ax8872bsr9700rtl8152b2VMAC模块软件配置2.1Kernel配置make menuconfig中需要打开“RK29VMAC ethernet support”|Location:|->Device Drivers|->Network device support|->Ethernet(10or100Mbit)Vmac是RK主控集成的IP,需要外部添加phy芯片才能工作,具体驱动代码在:drivers/net/rk29_vmac.c注意:在RK3188平台上,由于RMII接口与SDMMC1接口复用,所以需要关掉SDMMC1接口配置,防止干扰:CONFIG_SDMMC1_RK29=n2.2板级文件修改如果是RK3168,RK3188平板,需要在板级文件中加入以下vmac相应资源#ifdef CONFIG_RK29_VMAC#define PHY_PWR_EN_GPIO RK30_PIN0_PC0#define PHY_PWR_EN_VALUE GPIO_HIGH#include"../mach-rk30/board-rk31-sdk-vmac.c"#endif2.3phy电源控制Phy芯片工作时需要power on或reset,这是由主控gpio在vmac驱动初始时控制的,具体在2.2节中的板级文件里定义。

瑞芯微Rockchip Android11 SDK开发指南说明书

瑞芯微Rockchip Android11 SDK开发指南说明书

密级状态:绝密( ) 秘密( ) 内部( ) 公开( √ )文件状态: [ ] 草稿[ √ ] 正式发布[ ] 正在修改文件标识:RK-KF-YF-279当前版本:V1.1.5作者:吴良清完成日期:2021-08-31审核:陈海燕审核日期:2021-08-31title: Rockchip_Developer_Guide_Android11_SDK_V0.0.2_CNdescription: Android11开发指南published: truedate: 2021-07-13T06:21:56.250Ztags: sdkRockchip Android 11.0 SDK开发指南版本号作者修改日期修改说明备注V0.0.1吴良清2020-12-25发布RK3566/RK3568 Alpha版本V0.0.2卞金晨2021-01-06发布PX30/RK3326 Beta版本V1.0.0吴良清2021-01-29增加RK3566/RK3568 EVB板编译方法V1.1.0吴良清2021-02-23发布RK3399 Alpha版本V1.1.1吴良清2021-03-09修改单独编译kernel的说明V1.1.2吴良清2021-05-12支持RK3288W芯片平台V1.1.3吴良清2021-05-23增加常见问题说明V1.1.4吴良清2021-07-12支持RK3566 BOX产品形态,支持RK3328 BOX产品形态,增加repo服务器搭建及常见问题说明V1.1.5吴良清2021-08-31增加常见问题说明文档问题反馈:******************免责声明本文档按“现状”提供,瑞芯微电子股份有限公司(“本公司”,下同)不对本文档的任何陈述、信息和内容的准确性、可靠性、完整性、适销性、特定目的性和非侵权性提供任何明示或暗示的声明或保证。

本文档仅作为使用指导的参考。

由于产品版本升级或其他原因,本文档将可能在未经任何通知的情况下,不定期进行更新或修改。

Android编译过程详解(一)

Android编译过程详解(一)

Android编译过程详解(⼀)Android的优势就在于其开源,⼿机和平板⽣产商可以根据⾃⼰的硬件进⾏个性定制⾃⼰的⼿机产品,如⼩⽶,LePhone,M9等,因此,在我们在对Android的源码进⾏定制的时候,很有必要了解下,Android的编译过程。

如果你从来没有做过Android代码的编译,那么最官⽅的编译过程就是查看Android的官⽅⽹站:但是,这⼉只是告诉你了如何去编译⼀个通⽤的系统,并没有详细告诉你细节,我们跟着编译过程来了解下。

+--------------------------------------------------------------------------------------------------------------------+本⽂使⽤Android版本为2.1,采⽤开发板为华清远见研发的FS_S5PC100 A8开发板。

+--------------------------------------------------------------------------------------------------------------------+按照google给出的编译步骤如下:1> source build/envsetup.sh:加载命令2> lunch:选择平台编译选项3> make:执⾏编译我们按照编译步骤来分析编译过程的细节,最终添加⾃⼰的平台编译选项。

1. source build/envsetup.sh这个命令是⽤来将envsetup.sh⾥的所有⽤到的命令加载到环境变量⾥去,我们来分析下它。

envsetup.sh⾥的主要命令如下:function help() # 显⽰帮助信息function get_abs_build_var() # 获取绝对变量function get_build_var() # 获取绝对变量function check_product() # 检查productfunction check_variant() # 检查变量function setpaths() # 设置⽂件路径function printconfig() # 打印配置function set_stuff_for_environment() # 设置环境变量function set_sequence_number() # 设置序号function settitle() # 设置标题function choosetype() # 设置typefunction chooseproduct() # 设置productfunction choosevariant() # 设置variantfunction tapas() # 功能同choosecombofunction choosecombo() # 设置编译参数function add_lunch_combo() # 添加lunch项⽬function print_lunch_menu() # 打印lunch列表function lunch() # 配置lunchfunction m() # make from topfunction findmakefile() # 查找makefilefunction mm() # make from current directoryfunction mmm() # make the supplied directoriesfunction croot() # 回到根⽬录function cproj()function pid()function systemstack()function gdbclient()function jgrep() # 查找java⽂件function cgrep() # 查找c/cpp⽂件function resgrep()function tracedmdump()function runhat()function getbugreports()function startviewserver()function stopviewserver()function isviewserverstarted()function smoketest()function runtest()function godir () # 跳到指定⽬录 405# add_lunch_combo函数被多次调⽤,就是它来添加Android编译选项# Clear this variable. It will be built up again when the vendorsetup.sh406 # files are included at the end of this file.# 清空LUNCH_MENU_CHOICES变量,⽤来存在编译选项407 unset LUNCH_MENU_CHOICES408 function add_lunch_combo()409 {410 local new_combo=$1 # 获得add_lunch_combo被调⽤时的参数411 local c# 依次遍历LUNCH_MENU_CHOICES⾥的值,其实该函数第⼀次调⽤时,该值为空412 for c in ${LUNCH_MENU_CHOICES[@]} ; do413 if [ "$new_combo" = "$c" ] ; then # 如果参数⾥的值已经存在于LUNCH_MENU_CHOICES变量⾥,则返回414 return415 fi416 done# 如果参数的值不存在,则添加到LUNCH_MENU_CHOICES变量⾥417 LUNCH_MENU_CHOICES=(${LUNCH_MENU_CHOICES[@]} $new_combo)418 }# 这是系统⾃动增加了⼀个默认的编译项 generic-eng420 # add the default one here421 add_lunch_combo generic-eng # 调⽤上⾯的add_lunch_combo函数,将generic-eng作为参数传递过去423 # if we're on linux, add the simulator. There is a special case424 # in lunch to deal with the simulator425 if [ "$(uname)" = "Linux" ] ; then426 add_lunch_combo simulator427 fi# 下⾯的代码很重要,它要从vendor⽬录下查找vendorsetup.sh⽂件,如果查到了,就加载它1037 # Execute the contents of any vendorsetup.sh files we can find.1038 for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/build/vendorsetup.sh 2> /dev/null`1039 do1040 echo "including $f"1041 . $f # 执⾏找到的脚本,其实⾥⾯就是⼚商⾃⼰定义的编译选项1042 done1043 unset fenvsetup.sh其主要作⽤如下: 1. 加载了编译时使⽤到的函数命令,如:help,lunch,m,mm,mmm等 2. 添加了两个编译选项:generic-eng和simulator,这两个选项是系统默认选项 3. 查找vendor/<-⼚商⽬录>/和vendor/<⼚商⽬录>/build/⽬录下的vendorsetup.sh,如果存在的话,加载执⾏它,添加⼚商⾃⼰定义产品的编译选项其实,上述第3条是向编译系统添加了⼚商⾃⼰定义产品的编译选项,⾥⾯的代码就是:add_lunch_combo xxx-xxx。

ANDROID源码编译流程

ANDROID源码编译流程

ANDROID源码编译流程编译Android源代码是一个相对复杂的过程,但是如果你按照正确的步骤进行,你就可以成功地编译出你自己的Android系统。

下面是一个大致的流程来编译Android源代码:1.环境准备:在开始编译Android源代码之前,你需要确保你的系统满足以下要求:- Linux系统(推荐使用Ubuntu)-64位操作系统-至少8GB的RAM-大规模存储空间(30GB或更多)你还需要安装一些必要的开发包和工具,例如JDK、Git等。

详细的要求可以在Android官方网站上找到。

2.获取源代码:要编译Android系统,你需要先获取源代码。

Android的源代码存储在Git仓库中,你可以使用Repo工具来管理多个Git仓库。

首先,你需要安装Repo工具。

你可以通过下面的命令来安装:```$ sudo apt-get install repo```之后,在一个合适的目录下创建一个新的文件夹来存放源代码:$ mkdir myandroid$ cd myandroid```使用Repo工具来初始化一个仓库:``````之后,同步源代码到你的本地仓库:```$ repo sync```这个过程可能需要花费几个小时甚至更长时间,取决于你的网络速度和计算机配置。

3.构建工具链:Android使用GNU Make和Ninja构建工具来构建系统。

你需要安装这些工具。

首先,安装GNU Make和一些必要的依赖库:```$ sudo apt-get install build-essential然后,安装Ninja:```$ sudo apt-get install ninja-build```4.配置构建环境:在构建Android系统之前,你需要进行一些配置操作。

首先,你需要选择要构建的目标设备和版本。

你可以在Android源代码的根目录中找到`lunch`脚本。

运行`lunch`脚本并选择你的目标:```$ source build/envsetup.sh$ lunch```然后,你需要选择编译时使用的编译器。

android源码编译流程

android源码编译流程

android源码编译流程
Android源码编译是一项相对复杂的工作,需要多次配置环境和执行命令。

以下是一般的Android源码编译流程:
1. 准备编译环境
在编译Android源码之前,需要先准备好编译环境。

这包括安装必要的软件和工具,例如JDK、Python、Git、make、ccache等。

2. 获取源码
Android源码是存储在Git仓库中的,因此需要使用Git命令行工具获取源码。

可以使用repo工具来自动化这个过程。

3. 配置编译环境
在获取到源码之后,需要配置编译环境。

这包括设置环境变量、选择编译目标、配置编译选项等。

Android源码提供了一些预定义的编译选项,也可以通过lunch命令来进行交互式配置。

4. 执行编译命令
配置好编译环境之后,就可以执行编译命令了。

这包括使用make 命令编译整个系统,或者只编译某个模块。

编译完成后,会生成一些二进制文件和镜像文件,例如system.img、boot.img、recovery.img 等。

5. 刷入和测试
编译完成后,可以将生成的镜像文件刷入设备进行测试。

这包括将system.img刷入系统分区、boot.img刷入引导分区、recovery.img 刷入恢复分区等。

测试完成后,就可以将编译好的源码部署到实际的
设备上了。

总的来说,Android源码编译是一个相对复杂的过程,需要多次配置环境和执行命令。

但是,掌握了这个过程,就能够更好地理解Android系统的工作原理,并进行自定义开发和调试。

Rockchip 以太网 开发指南 V2.3.1-20160708

Rockchip 以太网 开发指南 V2.3.1-20160708

控制器
VMAC VMAC VMAC VMAC GMAC GMAC VMAC GMAC GMAC GMAC GMAC
Kernel 版本 2.6.x 2.6.x 3.0.36 3.0.36 3.10 3.10 3.10 3.10 3.10 4.4 4.4
Copyright 2016 @Fuzhou Rockchip Electronics Co., Ltd.
1.2 接口
10/100M 以太网 PHY 与 MAC 之间的接口主要有 MII 和 RMII。10/100/1000M 以太网 PHY
与 MAC 之间的接口主要有 RGMII。RK 系列的各个 SoC 支持的 PHY 接口列表如下:
SoC
MII
RMII
RGMII
SoC 内置 PHY
RK2918


的说明(2.2.4/2.2.8/2.2.9) 2. 改名为《Rockchip 以太网 配置指南》 修正 3399 DTS 文件为 rk3399-evb.dtsi
Copyright 2016 @Fuzhou Rockchip Electronics Co., Ltd.
I
Rockchip 以太网 开发指南
V2.2 V2.3
V2.3.1
作者 CZ CZ
CZ
HWG CZ
CZ
修改说明 创建文件 增加对 RK3288/RK3128/RK3036 配置的说 明 1. 修改第 2 章关于 PHY 芯片驱动的描述 2. 修改 2.2.3 及 2.2.5 中对 RMII 时钟的配置 增加 GMAC 问题排查部分 1. 增加对 RK3368/RK3366/RK3399 配置
目录
目录
1 以太网 PHY 芯片 .................................................................................................. 1-1 1.1 概述......................................................................................................... 1-1 1.2 接口......................................................................................................... 1-1 1.3 Kernel 配置 ............................................................................................... 1-1 1.3.1 RK3066 ........................................................................................... 1-2 1.3.2 RK3188 ........................................................................................... 1-3 1.3.3 RK3288 ........................................................................................... 1-3 1.3.4 RK3368 ........................................................................................... 1-6 1.3.5 RK3036 ........................................................................................... 1-6 1.3.6 RK3128 ........................................................................................... 1-7 1.3.7 RK322x ........................................................................................... 1-7 1.3.8 RK3366 ........................................................................................... 1-8 1.3.9 RK3399 ........................................................................................... 1-9

android编译大全 完全指南

android编译大全 完全指南

关于 -b 和 -m 参数的说明参见: https:///wiki/QAEP
v
执行 repo sync 就可以开始下载源码了
$ repo sync (漫长的过程,视速度而言需要半天以上) Android 编译大全(二) 2. 编译源代码 v 执行 ls -la /bin/sh 命令,如果输出如下:
注:本文档以 Froyo 版本为基础进行编译。 1.2. Source code 的获取 v 在源码存放目录 android 中执行
$ repo init -u git:///platform/manifest.git -b carrot.cupcake -m M7201JSDCBALYA6380.xml 就可以获得代码了
n sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev buildessential zip curl n n n n sudo apt-get install ncurses-dev sudo apt-get install zlib1g-dev sudo apt-get install valgrind sudo apt-get install python2.5 (Ubuntu 可能已经自带 )
build 之后的 log 如下: …… creating boot.img... creating recovery.img... creating system.img...
creating userdata.img... cleaning up... Done. Android 编译大全(三) 3. 验证编译之后的模块 $export ANDROID_PRODUCT_OUT=<SrcDir>/out/target/product/generic $cd ./out/host/linux-x86/bin $./emulator

android的编译过程

android的编译过程

android的编译过程Android应用程序的编译过程涉及多个步骤,包括代码编译、资源处理、打包和优化等。

下面我将从多个角度全面介绍Android应用程序的编译过程。

首先,Android应用程序的编译过程通常从Java或Kotlin源代码开始。

开发人员编写应用程序的业务逻辑和功能,然后使用Java编译器或Kotlin编译器将源代码编译成Java字节码或Kotlin字节码。

其次,Android应用程序还涉及资源文件,如布局文件、图片、字符串等。

这些资源文件需要经过资源处理工具的处理,例如aapt (Android Asset Packaging Tool),它将资源文件编译成二进制格式,并生成R.java文件,其中包含资源ID的映射关系。

接下来,编译器将Java字节码或Kotlin字节码与资源文件一起打包成未签名的APK文件。

此时,还没有进行代码优化或混淆处理。

然后,未签名的APK文件需要经过代码优化和混淆处理。

代码优化可以包括删除未使用的代码、压缩代码等,以提高应用程序的性能和减小文件大小。

混淆处理则是为了保护应用程序的安全,将变量名、方法名等重命名为无意义的名称,使得反编译后的代码难以理解。

最后,经过代码优化和混淆处理的未签名APK文件将被签名,生成最终的APK文件。

签名是为了验证APK文件的真实性和完整性,确保在应用程序安装和更新时不会被篡改。

总的来说,Android应用程序的编译过程涉及代码编译、资源处理、打包、优化和签名等多个步骤,最终生成可安装的APK文件。

这些步骤保证了应用程序的性能、安全性和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

v1.2.9 Android编译说明
1. 编译前预处理 (1)
1.1. 指定编译的产品名 (1)
1.2. 执行编译的预处理 (2)
1.3. 注意事项 (2)
2. 编译Android代码 (2)
3. 编译后处理 (3)
3.1. 生成FLASH烧写用的IMG (3)
3.2. 生成NFS用的文件目录 (3)
4. 在vendor下创建一个产品名 (4)
4.1. 新建产品目录 (4)
4.2. 功能裁剪 (4)
4.3. 注意事项 (5)
由于Android目录下可以包含多个产品的编译规则,所以编译源码要经过以下几个步骤:l编译前预处理(make prebuild)
l编译Android代码(make)
l编译后处理(make firmware)
1.编译前预处理
1.1. 指定编译的产品名
注意:
1.发布的Android SDK软件包已经做好以下配置,默认为sdkDemo产品,可以直接
跳到1.2的步骤。

2.如果要新建一个产品需要执行本小节1.1的操作。

3.新建产品请参见章节:在vendor下创建一个产品名
需要确认根目录下是否有buildspec.mk文件,如果有确认该文件内配置的产品名是否正确,例如sdkDemo的产品,则该文件内配置为如下值:
如果没有则拷($android)/build/buildspec.mk.default文件至根目录下,重复以上步骤。

1.2. 执行编译的预处理
在根目录下敲入make prebuild
该命令将执行一些产品相关功能的资源文件拷贝等操作。

1.3. 注意事项
l此部分步骤在只需要执行一次,后续编译不用再执行此命令。

l如何确认当前配置的产品名?
敲入make会立即弹出以下信息,确认下面的TARGET_PRODUCT字段值
l当前目录有多少的产品名?
Android代码中,用户自定义扩展的产品名都存放在vendor目录下
2.编译Android代码
在根目录下敲入make
3.编译后处理
3.1. 生成FLASH烧写用的IMG
在根目录下敲入make firmware
在($android)/rockdev/Image目录生成FLASH烧写用的IMG文件:
3.2. 生成NFS用的文件目录
在android根目录下运行make nfs命令,大约2分钟后在($android)/nfsImage目录生成NFS 用的文件:
不推荐使用NFS方式,环境搭建较麻烦。

4.在vendor下创建一个产品名
4.1. 新建产品目录
拷贝一个vendor下sdkDemo的产品目录,搜索sdkDemo关键字并将对所有出现的关键字做
修改。

(注意,包括文件名)
4.2. 功能裁剪
最后修改新建产品目录下的BoardConfig.mk文件,通过开关宏来进行产品功能裁剪。

以下是简要的宏说明:
各模块控制宏功能说明注意事项
BUILD_GOOGLE_MARKET_APP GOOGLE MARKET 应

BUILD_LINUX_SWAP Linux swap 支持
BOARD_USE_ETHERNET 以太网支持(RJ-45)
BOARD_USES_RK_CAMERA_HAL CAMERA 支持启用camera支持需要注释
USE_CAMERA_STUB
BOARD_USES_BUTTON_ON_STATUS_BAR 状态栏显示图标
BUILD_USE_MOBILE_NETWORK_TYPE 选择添加EVDO 或者
TDSCDMA模块在两者之间切换需要清除out目录下default.prop文件
BUILD_USE_MOBILE_DATA_BUSINESS 移动数据业务添加EVDO或TDSCDMA模块时
需要开启此项
BOARD_USES_RK_DSP_JPEG 使用DSP解析图片
BOARD_USE_MOUSE_INPUT 鼠标设备支持
BOARD_USE_NO_BLUR_EFFECT 不使用模糊效果开启鼠标时不建议开启此项
4.3. 注意事项
l在对宏进行修改之后,最好将out目录删除来重新编译,否则会有可能出现一些编译异常以及功能缺失。

l sdkDemo产品是功能最小化的产品,该产品目录下BoardConfig.mk文件注释了很多宏,关闭了一些功能。

相关文档
最新文档