海思平台程序运行出现无法在虚拟地址处理内核分页请求错误

程序执行后出现错误提示无法在虚拟地址0a209001处理内核分页请求 这种问题

错误出现的日志为

Unable to handle kernel paging request at virtual address 0a209001
pgd = dbd38000
[0a209001] *pgd=00000000
Internal error: Oops: 805 [#3] SMP ARM
Modules linked in: nvp6124_ex(O) gpioi2c(O) hi3531a_adec(PO) hi3531a_aenc(PO) hi3531a_ao(PO) hi3531a_ai(PO) hi3531a_aio(PO) hi_rtc(O) hi3531a_ive(PO) hi3531a_vda(PO) hi3531a_h264e(PO) hi3531a_chnl(PO) hi3531a_venc(PO) hi3531a_rc(PO) hi3531a_hdmi(PO) hifb(PO) hi3531a_vou(PO) hi3531a_vpss(PO) hi3531a_viu(PO) hi3531a_vgs(PO) hi3531a_region(PO) hi3531a_tde(PO) hi3531a_vfmw(PO) hi3531a_vdec(PO) hi3531a_sys(PO) hi3531a_base(PO) hi_media(O) hiuser(O) mmz(O) [last unloaded: gpioi2c]
CPU: 0 PID: 1299 Comm: DvrUi2 Tainted: P D O 3.10.0 #30
task: df02b100 ti: dec3e000 task.ti: dec3e000
PC is at memcpy+0xcc/0x330
LR is at copy_to_iter_bvec+0x64/0x12c
pc : [<c01cfeac>] lr : [<c00a03c8>] psr: 80000013
sp : dec3fe04 ip : 00000000 fp : 00000001
r10: 00000001 r9 : dec3fe94 r8 : dec3fed8
r7 : 00000000 r6 : df2a7001 r5 : 0a209000 r4 : 00000001
r3 : 00000000 r2 : 80000000 r1 : df2a7001 r0 : 0a209001
Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c53c7d Table: 5bd3804a DAC: 00000015

如果出现这种错误,错误原因是因为系统内核的漏洞,自己经过很长时间的网上查找在无意中发现了最近发布的一篇文章才得以解决。

博客地址为http://erwinchang.github.io/2017/01/09/oops-memcpy/

时间: 2024-08-03 14:23:32

海思平台程序运行出现无法在虚拟地址处理内核分页请求错误的相关文章

用VS2013+VELT-0.1.4进行海思平台 UBOOT 的开发

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs2013 + velt-0.1.4 1.1    什么是VELT VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序

用VS2013+VELT-0.1.4进行海思平台 Linux内核 的开发

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs2013 + velt-0.1.4 1.1    什么是VELT VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序

用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发

1.1    什么是VELT VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码.目前的版本是0.1.4,仅支持vs2013.此插件可以在CSDN下载频道下载(http://download.csdn.ne

FAAC1.28 在海思HI3520D/HI3515A平台linux中的编译 优化

FAAC1.28的下载地址:http://www.audiocoding.com/downloads.html 如何编译: 1../configure --host=arm-hisiv100nptl-linux --prefix=/home/ssy/lib 2.make 3.make install 优化 在不修改源码的情况下,faac的内存占用非常高,每路音频在13M左右.如果多路音频的话,内存将很快耗尽. 搜索MAX_CHANNELS的定义,默认是6 和64,全部改成1(一般都是单声道).

os.linesep实现不需要关注程序运行在什么平台

1. unix平台的换行符:\n 2.DOS/Win32平台的换行符:\r\n 3.通过os.linesep函数可以实现不需要关注程序运行在什么平台,也不需要根据不同的平台决定使用哪种换行符: # coding=gbk import os ls = os.linesep

WinCE平台的程序编译到Win32平台下运行

最近做的项目中,有一个在WinCE平台上跑的程序,后来随着项目的发展,要求此程序在PC上也能跑.感谢VS 2005提供的多平台支持,只需要几分钟就可以解决这个问题,方法很简单,下面是我处理的过程. 1.在配置管理中增加新平台 1.1 创建新平台 程序最初是基于Pocket PC 2003(ARMV4)平台创建的,我在此平台的配置基础上,创建新的Win32平台.打开菜单Build->Configuration Manager,在Active Solution Platform下拉选择框中选择New

海思 3520D 移植Qt4.5.3 一

一.移植Qt4.5.3 1.获得 Qt4.5.3 的源代码Qt4.5.3源代码的原始包 qt-embedded-opensource-src-4.5.3.tar.gz 将其拷贝到 /opt 下, 然后在linux终端上输入如下命令(不用键入#),在/opt/下解压Qt4.5.3的源码包 # cd /opt/ # tar xvzf /opt/qt-embedded-opensource-src-4.5.3.tar.gz 2.交叉编译Qt4.5.3 2.1.#vim mkspecs/qws/linu

海思Hi3518EV200(2)开发环境

1. Linux开发环境 2. Linux开发环境描述 3. 搭建Linux开发环境 1) 安装Linux服务器 这里使用ubuntu 10.04 LTS 2) 安装交叉编译工具 海思SDK包中提供专门的编译工具链:arm-hisiv300-linux和arm-hisiv400-linux. 3) 安装SDK 将Hi3518E_V200R001XX.tgz拷贝到linux服务器上,解压tar后执行./sdk.unpack 4) 烧写uboot/内核/根文件系统 这里使用SDK包里面默认的uboo

海思编译链编译出现__aeabi_unwind_cpp_pr1重定义怎么回事

1.用arm-hisiv100nptl-linux-gcc编译代码,结果发现报错,__aeabi_unwind_cpp_pr1重定义,在librt.a先定义,使用的海思芯片是hi3520d. 2.本来以为是编译链冲突所致,工具链删了又装,只保留一个,还是不行,装的是toolchain_hisi_linux_nptl_install.tgz 3.后来发现在Hi3520_SDK_1.0.5.0中也有工具链,还有三种,分别是hisiv100,hisiv200,hisiv100nptl,就使用SDK包o