注:必须是Linux/arm 3.0以上内核才支持RPMSG,在此使用的是.config - Linux/arm 3.0.31 Kernel Configuration。(soure code from blaze_tablet 4AJ.2.1 http://omappedia.org/wiki/4AJ.2.1_OMAP4_Jelly_Bean_Release_Notes)

 
 1、配置Linux内核驱动使得支持RPMSG(see also:http://omappedia.org/wiki/RPMsg_Kernel_Sources

Kernel Built-In

In menuconfig:

export ARCH=arm
make menuconfig

Make sure that the following options are set. Look in Build Customization section for customizing your build.

System Type  --->
TI OMAP Common Features --->
<*> OMAP Virtio-based remote processor messaging support
[*] OMAP RPMSG Recovery
-*- Mailbox framework support
(256) Mailbox kfifo default buffer size (bytes)
-*- IOMMU support for OMAP devices
[ ] Export OMAP IOMMU internals in DebugFS
(0x0) Physical carveout memory pool size (Byte)
Device Drivers --->
<*> Multimedia support --->
<*> TI TILER support --->
Device Drivers --->
<*> Generic Hardware Spinlock framework
<*> OMAP Hardware Spinlock device
[*] Autosuspend support for remoteproc
[*] OMAP remoteproc support
<*> Remote Processor Resources
[*] OMAP remoteproc watchdog timer
<*> Virtio-based remote processor messaging bus
<*> rpmsg OMX driver
<*> rpmsg resource manager
<M> An rpmsg client sample
<M> An rpmsg server sample
2、配置Linux内核驱动使得支持RPMSG Tesla(see also:http://omappedia.org/wiki/RPMsg_Tesla

In order to enable Tesla support, select the OMAP remoteproc support for DSP option in the Device Drivers section in menuconfig

export ARCH=arm
make menuconfig
Device Drivers  --->
[*] Autosuspend support for remoteproc
[*] OMAP remoteproc support
[*] OMAP remoteproc support for IPU
[*] OMAP remoteproc support for DSP
 
3、编译内核,重启blaze_tablet板,串口出现如下打印则说明内核已经支持DSP。
[    0.250335] omap_rproc_get_pool: dsp - static memory is unavailable: 0x0, 0x0
[    0.251373] omap_rproc_get_pool: ipu - carveout memory is unavailable: 0x0, 0x0
 
[    0.275665] omap-rproc omap-rproc.0: dsp is available
[    0.276275] omap-rproc omap-rproc.1: ipu is available
 
[    1.450378] omap-iommu omap-iommu.0: ducati registered
[    1.450378] omap-iommu omap-iommu.1: tesla registered
 
[    1.632354] omap-rproc omap-rproc.1: powering up ipu
[    1.632843] virtio_rpmsg_bus virtio0: rpmsg backend virtproc probed successfully
[    1.632843] virtio_rpmsg_bus virtio1: rpmsg backend virtproc probed successfully
[    1.632843] omap-rproc omap-rproc.0: powering up dsp
[    1.634368] virtio_rpmsg_bus virtio2: rpmsg backend virtproc probed successfully
 
[    8.551696] omap-rproc omap-rproc.0: rproc_loader_cont: failed to load tesla-dsp.bin
 
下一步则增加tesla-dsp.bin映像并使之加载启动OK,待续。。。
 

OMAP4之DSP核(Tesla)软件开发学习(二)Linux内核驱动支持OMAP4 DSP核的更多相关文章

  1. OMAP4之DSP核(Tesla)软件开发学习(一)

    目的:       目前手上正在OMAP4上做东西,由于涉及到大量运算,交给arm A9双核发现运算速度很慢,不能满足需求.故考虑将大量运算任务(比如FIR.FFT.卷积.图像处理.向量运算等)交给O ...

  2. Java开发学习(二十二)----Spring事务属性、事务传播行为

    一.事务配置 上面这些属性都可以在@Transactional注解的参数上进行设置. readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true. timeout ...

  3. Java开发学习(二十四)----SpringMVC设置请求映射路径

    一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...

  4. Java开发学习(二十五)----使用PostMan完成不同类型参数传递

    一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...

  5. Java开发学习(二十六)----SpringMVC返回响应结果

    SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户. 比如:根据用户ID查 ...

  6. Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发

    一.REST简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描 ...

  7. Java开发学习(二十八)----拦截器(Interceptor)详细解析

    一.拦截器概念 讲解拦截器的概念之前,我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务器接收到请求以后,会去判断请求的是静态资源还是动态资源 (3)如 ...

  8. Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/font ...

  9. Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux  opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2 ...

随机推荐

  1. go-005-变量、常量

    概述 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过变量名访问. Go 语言变量名由字母.数字.下划线组成,其中首个字母不能为数字. 声明变量的一般形式是使用 var 关 ...

  2. python第三方模块之paramiko模块

    目录: paramiko模块介绍 paramiko模块安装 paramiko模块使用 一.paramiko模块介绍 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件 ...

  3. 线性表:实现单链表和子类栈(Stack)及单向队列(Queue) [C++]

    刚刚开始学习c++.之前c的内容掌握的也不多,基本只是一本概论课的程度,以前使用c的struct写过的链表.用python写过简单的数据结构,就试着把两者用c++写出来,也是对c++的class,以及 ...

  4. jQuery获取属性

    jQuery在获取jQuery对象的属性时,出现attr()获取不到的情况,此时,请使用prop()获取 如下为经常用到的: var oHtml=$(this).prop("outerHTM ...

  5. Python ConfigParser的使用

    1.基本的读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该sect ...

  6. 初识CGI

    CGI Web 服务器只能生成静态内容,而用户请求动态内容时,Web服务器只能借助一些应用程序来实现.CGI时一套标准,它规定了Web服务器和应用程序之间的交互方式. 静态内容与动态内容 要想理解什么 ...

  7. LINUX实践--ELF分析

    一.ELF文件头(定义在/usr/include/elf.h)中 二.实践部分 第一行 对应e_ident[EI_NIDENT]:实际表示内容为7f45 4c46 0101 0100 0000 000 ...

  8. 使用JavaScript下载csv文件

    前端可以使用JavaScript在客户端下载包含页面数据的文件,这里以下载CSV格式文件为例,代码如下: function downloadData(data, filename, type) { v ...

  9. QT 正则表达式无效

    背景:写了一个判断IP地址合法的正则表达式,并让它应用在输入框中 代码如下 QRegExp rx_ip("^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}( ...

  10. codeforces 355 div2 C. Vanya and Label 水题

    C. Vanya and Label time limit per test 1 second memory limit per test 256 megabytes input standard i ...