AM335X 分配大于4M的framebuffer

最近正在将800X480的设备修改成1024X600,算了一下,

1024X600X4X2需要4M的framebuffer空间,其中4代表一个像素32位色的Byte数,

2代表双framebuffer,LCD驱动程序中,使用dma_alloc_coherent来分配缓冲区

dma_alloc_coherent分配缓冲区收到MAX_ORDER的制约,MAX_ORDER默认值是11

所以,dma_alloc_coherent分配的最大DMA空间只能小于2M,为了支持

4M甚至更大的DMA空间,需要做以下修改:

1. 修改arch/arm/configs/am335x_evm_android_defconfig文件,将

 CONFIG_FORCE_MAX_ZONEORDER=11

修改为:

CONFIG_FORCE_MAX_ZONEORDER=12

也可以修改arch/arm/Kconfig中,将config FORCE_MAX_ZONEORDER的

default修改为12,我用的就是这种方法,因为发现修改am335x_evm_android_defconfig没起作用

2. 修改arch/arm/configs/am335x_evm_android_defconfig文件,将

CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE 4

修改为:

CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE 8

3.重新配置并编译内核

也可参考以下链接:

http://e2e.ti.com/support/arm/sitara_arm/f/791/t/189862.aspx

4.编译烧写到NandFLash后,系统启动不了,出现以下错误:

pvrsrvkm: disagrees about version of symbol contig_page_data

这是由于pvrsrvkm.ko等相关的内核模块没有在上述修改后重新编译造成的,

解决办法是:

使用以下命令清除sgx旧的编译数据:

cd hardware/ti/sgx

make OMAPES=4.x ANDROID_ROOT_DIR=/home/skwiki/AKHMI_201309/ak2_ics clean

其中,ANDROID_ROOT_DIR是Android源码所在目录,继续输入以下命令:

make OMAPES=4.x BUILD=release all_km ANDROID_ROOT_DIR=/home/skwiki/AKHMI_201309/ak2_ics

我在编译的时候遇到这个问题:

cp: cannot stat  .../binary2_omap4430_android_release/target/pvrsrvkm.ko

我发现编译后生成的pvrsrvkm.ko存在于out/target/product/am335xevm/target/kbuild目录中,

于是我修改目录hardware/ti/sgx中的Makefile.KM.Android文件,大概在35行,将:

else ifeq ($(OMAPES),4.x)

......
@echo "copying the sgx kernel modules to $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)"
@cp -rf $(GFX_KERNMOD_SRCPATH)/eurasiacon/binary2_omap4430_android_release/target/pvrsrvkm.ko
 $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/.
@cp -rf $(GFX_KERNMOD_SRCPATH)/eurasiacon/binary2_omap4430_android_release/target/omaplfb.ko
 $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/.
修改为:

else ifeq ($(OMAPES),4.x)
......
@echo "copying the sgx kernel modules from $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)/target/kbuild"
@echo "copying the sgx kernel modules to   $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)"
@cp -rf $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)/target/kbuild/pvrsrvkm.ko $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/
@cp -rf $(ANDROID_ROOT)/out/target/product/$(TARGET_PRODUCT)/target/kbuild/omaplfb.ko $(GFX_REL_ES4_LIB_SRCPATH_ANDROID)/
修改完毕以后,在使用以下命令进行重新编译:

make OMAPES=4.x BUILD=release all_km ANDROID_ROOT_DIR=/home/skwiki/AKHMI_201309/ak2_ics

严谨起见,我们在Android源码目录下面重新编译Android源码,并生成ubi文件系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万年历升级版 Calendar

package com.yc.wnl;import java.util.Calendar; import java.util.Date; import java.util.Scanner;import com.yc.ycutil.DateUtil; //用于输出用户要求的年月对应的表格 public class CalendarTest {public static void main(String[] args) {///万年历的进化版//1、这个月的…

bert pytorch 序列标注_序列标注:Bi-LSTM + CRF

最近在做序列标注的相关任务,为了理解bi-lstm + crf的原理及细节,找了很多相关资料,以及代码实现,这里分享给大家并附上一些自己的理解。 CRF 相关资料推荐 关于crf,我看了很多资料,这里推荐几个 - 英文的crf tutorial - 李航的统计学习方法 这两个讲的很细,公式很多,很…

python中if语句求最大值_python 判断三个数字中的最大值实例代码

python 判断三个数字中的最大值,具体代码如下所示: #判断三个数中最大值 n1 int(input(please enter the firest number:)) n2 int(input(please enter the second number:)) n3 int(input(please enter the third number:)) max_num 0 if n1 > n2…

am335x otg-usb

任务: am335x一共有两个usb主机控制器,在天嵌的bsp中,一个配置为usb host ,一个配置为了usb otg。现在需要将otg也配置为host。 实际修改过程非常简单:将.config文件中,将CONFIG_USB_OTG,CONFIG_USB_OTG_WHITELIST&am…

Linux网络管理基本

子网掩码与IP地址同等长度,与IP地址每一位一一对应,IP地址中对应子网掩码为1的位为网络部分Linux中网卡标识为eth,第一块网卡叫做eth0,第二块叫做eth1,以此类推使用lspci或lsusb命令可查看网卡物理信息命令ifconfig (-…

python如果想测试变量的类型、可以使用_python里测试变量类型用什么

Python中测试变量类型可以使用isinstance()函数或type()函数来完成。 isinstance() 函数: isinstance()函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance()函数的语法:isinstance(object, classinfo) 参数: object -- 实例对…

参考文献起止页码怎么写_【求助】有全文参考文献但没有起止页码如何办

我的文章引用的文献中有5篇从PUBMED得到的全文电子版是没有起止页码的,在论文中参考文献的著录是要求起止页码的,这该如何办?这5篇文献如下,欢迎战友们伸出援手,1. Lpez-Revilla, R., Martnez-Contreras, L.-A., and Snchez-Garza, M. (2008): Prevalence of high-risk human…

平台系统云服务器配置,01-云平台连接配置

1云平台连接1.1 云平台连接简介云平台连接是指设备与H3C绿洲平台服务器(H3C Oasis server)通过Internet建立的远程管理通道。通过云平台连接,网络管理员可以在没有直接接入到设备所在网络的情况下,通过绿洲平台服务器对分布在不同地域的设备进行管理和维…

python 计算协方差矩阵_opencv2学习:计算协方差矩阵

图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少。首先,利用matlab计算一下,便于比较:>> data[1,2,3;10,20,30]data 1 2 310 20 30>> convarcov(data)convar 40.5000 81.0…

源码安装mysql5.1.51

1. ./mysql_install_db --force 2. 进入到mysql的安装目录执行下面4个命令 groupadd mysql useradd -g mysql mysql chown -R mysql . chgrp -R mysql . 3. 将源码里的my-medium.cnf文件拷贝到mysql的安装目录 cp support-files/my-medium.cnf etc/my.cnf 4. 执行…

python读取文件路径报invalid_关于Python读取文件的路径中斜杠问题

最近用Python读取文件,发现有时候用 \ 会报错,换成 \\ 就不会报错。查了下资料发现,\是Python的转义字符,如果路径中存在\t或者\r这样的特殊字符,\就无法起到目录跳转的作用,因此报错。解决办法就是告诉系统…

vb如何定义微软服务器stul,VBScrip微软官方教程.doc

VBScrip微软官方教程VBScript微软官方教程Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的最新成员,它将灵活的 Script 应用于更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机 Script 和 Microsoft Inter…

cocos2d-x for wp 之Box2D的应用

本文大部分内容是基于fengyun1989的博文,自己只是加深巩固而已 Box2d是一款用于2d游戏的物理引擎。在这个世界里创造出的物体都更接近于真实世界的物体。 首先,在项目添加Box2D.XNA.DLL。 新建一个页面BOX2DLayer并继承于CCLayer 重写init函数&#xff0…

qt 添加依赖库lib_在QT中添加LIB的方法

自动显示隐藏布局的listView借助View的OnTouchListener接口来监听listView的滑动,通过比较与上次坐标的大小,判断滑动方向,并通过滑动方向来判断是否需显示或者隐藏对应的布局,并且带有动画效果. 1.自动显示 ...ImFire即时通讯系统构建(需求)ImFire需求 一期需求(近期) 1.新用户…

python中集合运算_Python中的集合操作与集合运算

Python中的集合是一种无序的,无重复值的数据结构类型。Python中的集合可以用来检测元素检测或消除重复的元素。 一、python 集合概述 (1)Python中的集合元素是无序的,即元素没有顺序问题,也不能像数组、列表、字符串那…

Asp.net 定时任务

1.定时器 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Text; using System.Web.Security; using System.Web.SessionState; using System.Timers;namespace WebApplication1 {public class Global :…

arm64入栈出栈_ARM64的内核栈、用户栈、寄存器上下文

1. 内核栈的分配,即thread_info的分配,是在do_fork->dup_task_struct中分配(默认为2个pages),并赋值给task_struct->stack;2. 用户栈的分配分两种:一是pthread create会事先mmap分配好用户栈,传给do_…

python程序怎么修改_python文件如何修改

以占用内存的方式修改文件 待修改的文件 word1.txt,文件内容如下:现在要将文中的“汪淼”修改为“WM”,代码如下:#!-*-coding:utf-8-*- old_str 汪淼 new_str WM f1 open(word1.txt,r,encoding"utf-8") #…

phpMyAdmin导入大的sql文件

在使用phpMyAdmin的时候经常用到数据的导入和导出(Export/Import),但是在导入大数据的时候由于php上传文件的限制和脚本响应时间的限制,导致phpMyAdmin无法导入大数据,对于导入大数据到mysql的,我以前使用过使用SHELL的方式导入几…

vue 计算属性和data_Vue:计算属性

一、为什么要使用计算属性1、什么是计算属性计算属性:可以理解为能够在里面写一些计算逻辑的属性。具有如下的作用:减少模板中的计算逻辑。数据缓存。当我们的数据没有变化的时候,不会再次执行计算的过程。依赖固定的数据类型(响应式数据)&am…