关于android内核移植到YLP2440开发板

本文分享了将Android内核交叉编译并移植到YLP2440开发板的经验,包括下载内核源码、配置交叉编译环境、修改Makefile、配置内核选项等步骤,并解决了编译过程中遇到的问题。
今天学习把android内核交叉编译后移植到YLP2440开发板,下面是一些心得。

1、从http://code.google.com/p/android/downloads/list上下载linux-2.6.25-android-1.0_r1.tar.gz
2、解压到任意目录下,解压命令为tar tar –zxvf linux-2.6.25-android-1.0_r1.tar.gz。
3、解压YLP2440板的交叉编译工具arm-linux-gcc-3.4.1.tar.bz2命令为tar xjvf arm-linux-3.4.1.tar.bz2,将文件解压到用户目录,如/usr/local/arm/下。
4、添加当前路径进入环境变量,命令export PATH=/usr/local/arm/3.4.1/bin:$PATH
5、进入内核文件夹,如cd ~/kernel.git/
6、修改Makefile文件,gedit Makefile,如下
CROSS_COMPILE ?= arm-linux-
7、运行make menuconfig
(1)确保System Type ---> ARM system type ()中的内容为Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443
(2)确保System Type ---> S3C2410 Machines --->SMDK2410/A9M2410被勾选
(3)取消选择与Goldfish相关的内容,如下:
Device Drivers ---> Character devices ---> < > Goldfish TTY Driver
Device Drivers ---> Power supply class support ---> < > Goldfish battery driver (NEW)
Device Drivers ---> Real Time Clock ---> < > GOLDFISH (NEW)
Device Drivers ---> Graphics support ---> Support for frame buffer devices ---> < > Goldfish Framebuffer
device drivers->Graphics support->Console display driver support->[]VGA text console
(4)选择S3C2410 LCD相关的内容
Device Drivers ---> Graphics support ---> Support for frame buffer devices ---> <*> S3C2410 LCD framebuffer support
Device Drivers ---> Graphics support ---> Bootup logo ---> Standard black and white Linux logo
Device Drivers ---> Graphics support ---> Bootup logo ---> Standard 16-color Linux logo
Device Drivers ---> Graphics support ---> Bootup logo ---> Standard 224-color Linux logo
(5) 选中Android内核必须选项
General setup ---> Use full shmem filesystem
General setup ---> Enable Android's Shared Memory Subsystem
System Type ---> Support Thumb user binaries
Device Drivers ---> Android ---> Android log driver
Device Drivers ---> Android ---> <*> Binder IPC Driver
(6) 尽量选中Android内核可选选项
Device Drivers ---> Android ---> RAM buffer console
Device Drivers ---> Android ---> Android timed gpio driver
Device Drivers ---> Android ---> Only allow certain groups to create sockets
(7)退出并保存.config
8、使用命令make zImage生成映像。

出现的一些问题
问题一:
CC arch/arm/kernel/asm-offsets.s
cc1: error: invalid option `abi=aapcs-linux'
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
解决方法:
关闭kernel features -->Use EABI。

问题二:
drivers/video/console/vgacon.c:494: error: `PCIMEM_BASE' undeclared (first use in this function)
drivers/video/console/vgacon.c:494: error: (Each undeclared identifier is reported only once
解决方法:
device drivers->
Graphics support->
Console display driver support->
[ ]VGA text console(取消)


上面一些东西是参考如下的文章
Android在TQ2440开发板上的移植
whizer发表于 2009-5-21 14:22 | 只看该作者
http://www.arm9.org.ru/viewthread.php?tid=6&extra=page%3D1
<think>好的,我现在要处理用户关于Halcon的入门快速教程的查询。首先,用户明确提到想要一个快速入门的教程,所以需要提供简洁但全面的步骤,帮助新手快速上手。我需要参考提供的引用内容,看看有没有相关的信息可以利用。 查看引用[1],里面提到C#联合Halcon的框架源码,包括启动项目和模块结构,这可能涉及到环境配置和项目初始化,这对新手来说应该是基础部分。引用[2]是安装手册,强调从Halcon12升级到22的必要性,特别是AI功能,所以可能需要在教程中建议安装最新版本。引用[3]关于select_contours_xld的使用,属于图像处理中的轮廓选择操作,可以作为示例代码的一部分。引用[4]涉及3D手眼标定,可能比较复杂,暂时不适合入门教程,但或许可以提到作为进阶内容。 接下来,我需要组织教程的结构。通常入门教程会包括安装、基础概念、环境配置、简单示例、资源推荐等。根据引用内容,可以分步骤来写: 1. **环境安装**:根据引用[2],建议安装Halcon22,并说明安装步骤和注意事项,比如卸载旧版本。 2. **基础概念**:图像采集、图像处理、特征提取等,引用[3]中的轮廓处理可以作为例子。 3. **编程基础**:使用HDevelop,如何创建项目,编写代码。引用[1]中的C#集成可能稍高级,但可以提及,或者专注于HDevelop环境。 4. **简单示例**:比如读取图像、阈值分割、轮廓提取,参考引用[3]的select_contours_xld。 5. **调试与扩展**:调试技巧,以及如何查阅文档,引用[4]的标定作为进阶内容。 6. **学习资源**:官方文档、社区论坛、实战项目推荐,结合引用中的内容,比如优快云的博客(引用[3]和[4])可能有相关教程。 需要注意用户可能需要代码示例,所以需要确保提供的代码符合Halcon语法,并且有注释说明。例如,读取图像、处理、显示结果的基本流程。同时,要避免过于复杂的操作,保持简单明了。 另外,根据用户之前的引用,他们可能对机器视觉和与C#集成感兴趣,但当前问题主要是入门教程,所以重点应放在Halcon本身的基础使用上,集成部分可能作为后续步骤提及。 最后,生成相关问题,需要围绕Halcon入门可能遇到的后续问题,比如环境配置问题、基础操作疑问、学习资源推荐等。</think>### Halcon入门快速教程分步说明 #### 一、环境安装与配置 1. 从MVTec官网下载Halcon22.11(推荐最新版,含更多AI功能[^2]) 2. 安装时勾选开发环境HDevelop和运行库 3. 验证安装:启动HDevelop,输入`dev_open_window(0,0,512,512,'black',WindowHandle)`,若弹出黑色窗口即成功 #### 二、基础语法结构 Halcon使用算子(Operator)链式处理图像: ```halcon read_image(Image, 'printer_chip/printer_chip_01') // 读取图像 threshold(Image, Region, 128, 255) // 阈值分割 connection(Region, ConnectedRegions) // 区域连通 select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 100, 1000) // 筛选区域 ``` #### 三、核心功能快速实践 1. **图像采集**: ```halcon open_framegrabber('DirectShow', 1, 1, 0, 0, 0, 0, 'default', -1, 'rgb', -1, 'false', 'default', '0', -1, AcqHandle) grab_image_start(AcqHandle, -1) while (true) grab_image_async(Image, AcqHandle, -1) * 处理图像... endwhile ``` 2. **轮廓处理**(参考select_contours_xld[^3]): ```halcon edges_sub_pix(Image, Edges, 'canny', 1, 20, 40) select_contours_xld(Edges, SelectedContours, 'contour_length', 50, 1000, -0.5, 0.5) ``` #### 四、调试技巧 1. 使用变量检查窗口(Ctrl+W)实时查看图像/区域/XLD轮廓 2. 调试模式设置断点:右键行号选择`Set Breakpoint` 3. 单步执行:F5逐过程,F6逐算子执行 #### 五、学习资源推荐 1. 官方文档:安装目录下的`help`文件夹含完整函数手册 2. 实例程序:`examples`目录提供200+场景案例 3. 中文社区:优快云搜索"Halcon轮廓处理"[^3]、"3D手眼标定"[^4]等实战文章
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值