TI中文支持网
TI专业的中文技术问题搜集分享网站

AM437x PRU 下载

按照文档挂载编译吃 remoteproc 模块 通过insmod 挂载上去

运行编译好的 下载的应用程序 

// Standard header files
#include <stdio.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>

#define PRU_NUM0
#define ADDEND10x98765400u
#define ADDEND20x12345678u
#define ADDEND30x10210210u

#define DDR_BASEADDR0x80000000
#define OFFSET_DDR0x00001000
#define OFFSET_SHAREDRAM 2048//equivalent with 0x00002000

#define PRUSS0_SHARED_DATARAM4

// Driver header file
#include "prussdrv.h"

#define PRU_NUM0
static int LOCAL_exampleInit ();

static int mem_fd;
static void *ddrMem, *sharedMem;

static unsigned int *sharedMem_int;

int main (void)
{volatile unsigned long i,j;
unsigned int ret;printf("\nINFO: Starting %s example.\r\n","test");/* Initialize the PRU */prussdrv_init ();/* Open PRU Interrupt */ret = prussdrv_open(PRU_EVTOUT_0);if (ret){printf("prussdrv_open open failed\n");return (ret);}/* Initialize example */
//printf("\tINFO: Initializing example.\r\n");
//LOCAL_exampleInit();/* Execute example on PRU */printf("\tINFO: Executing example on PRU0.\r\n");prussdrv_exec_program (PRU_NUM, "./test.bin");
printf("\tINFO: Executing example done.\r\n");for(i = 0; i < 5000;i++)for(j = 0; j < 1000000; j++);/* Disable PRU*/
 //printf("Disable PRU\r\n");//prussdrv_pru_disable(PRU_NUM);
 //prussdrv_exit ();return(0);
}
/*****************************************************************************
* Local Function Definitions
*****************************************************************************/

static int LOCAL_exampleInit ()
{void *DDR_regaddr;/* open the device */mem_fd = open("/dev/mem", O_RDWR);if (mem_fd < 0) {printf("Failed to open /dev/mem (%s)\n", strerror(errno));return -1;}/* map the memory */ddrMem = mmap(0, 0x0FFFFFFF, PROT_WRITE | PROT_READ, MAP_SHARED, mem_fd, DDR_BASEADDR);if (ddrMem == NULL) {printf("Failed to map the device (%s)\n", strerror(errno));close(mem_fd);return -1;}//FLush the flag locations of PRU0 and PRU1DDR_regaddr = ddrMem;*(unsigned long*) DDR_regaddr = 0x00;DDR_regaddr = ddrMem + 0x000000004;*(unsigned long*) DDR_regaddr = 0x00;return(0);
}

然后运行后显示 求帮忙的说 是模块没挂载成功么

437x下载找不到 cat /sys/class/uio/uio0/maps/map0/addr 这个目录的说 还是下载的程序有问题=。= .bin文件就在这个文件的边哈

Yaoming Qin:

请您检查下您的pru driver是不是对的,按照我们的文档来做:

http://processors.wiki.ti.com/index.php/PRU-ICSS

http://processors.wiki.ti.com/index.php/PRU-ICSS_Installer

aria li:

回复 Yaoming Qin:

能问下这个下载的程序是对的呢………….如何检查pru driver挂载是不是对的  我是make modules后 生成的ko文件然后 先用insmod 挂载的 virtio 然后挂载的remoteproc……

赞(0)
未经允许不得转载:TI中文支持网 » AM437x PRU 下载
分享到: 更多 (0)