Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
您好!
我正在尝试从 ARM cortex A8运行和加载 PRU、但当我的代码想要执行 PRUICCS_CREATE ()函数时、结果出现错误
CortxA8:未处理的 ADP_Stopped 异常0x20023
然后转至 DO _ AngelSWI()
是否有人有与我相似的孔布? 这是我的代码:
/*
*==== main.c ======
*
#include
#include
#include
#include
#include
#include
#include
#include
#include
/*
*==== taskFxn ====
*
PRUICSS_Handle handle =空;
uint32_t instance = PRUICCSS_instance_one;
extern char binBuff[8192];
空任务初始化(UARg a0、UARg A1)
{
system_printf ("enter taskFxn ()\n");
PRUICSS_Config * pruss_config;
PRUICSS_socGetInitCfg (&pruss_config);
/*为 PRUICSS 实例创建句柄*/
Handle = PRUICSS_create (pruss_config、实例);
//PRUICSS_HwAttrs const *hwAttrs = handle->hwAttrs;
//PRUICSS_pinMuxConfig (handle、0x0);/* PRUSS 引脚多路复用*
PRUICSS_pruDisable (handle、PRUICCSS_PRU0);
PRUICSS_pruDisable (handle、PRUICCSS_PRU1);
UART_printf ("\n\rPRU 以加载应用!\n"\});
PRUICSS_setPRUBuffer (handle、PRUICCSS_PRU0、binBuff、(11*10));
PRUICSS_setPRUBuffer (handle、PRUICCSS_PRU1、binBuff、(11*10));
PRUICSS_enableOCPMasterAccess (handle);
PRUICSS_pruExecProgram (handle、PRUICCSS_PRU0);
PRUICSS_pruExecProgram (handle、PRUICCSS_PRU1);
//PRUICSS_IntcInitData pruss_intc_initdata = PRUSS_INTC_INITDATA;
//PRUICSS_pruIntcInit (handle、&pruss_intc_initdata);
PRUICSS_pruEnable (handle、PRUICCSS_PRU0);
PRUICSS_pruEnable (handle、PRUICCSS_PRU1);
UART_printf ("\n\rPRU 加载!\n");
Task_sleep (10);
system_printf ("exit taskFxn ()\n"\});
}
/*
*==== main ====
*
int main()
{
/*
*使用 ROV->SysMin 查看循环缓冲区中的字符
*
system_printf ("enter main()\n");
board_initCfg boardCfg;
boardCfg = Board_init_module_clock |
Board_init_ICSS_PINMUX;
board_init (boardCfg);
BIOS_start();/*不返回*/
返回(0);
}
这就是我在 GEL 文件中启用 PRU 的方法:
#define PRCM_BASE_ADDR (0x44E00000)
#define CM_PER_PRU_ICSS_CLKCTRL (PRCM_BASE_ADDR + 0x0E8)
#define CM_DPLL (0x44E00500)
#define CLKSEL_PRU_ICSS_OCP_CLK (CM_DPLL + 0x030)
WR_MEM_32 (CM_PER_PRU_ICSS_CLKCTRL、0x2);
WR_MEM_32 (CLKSEL_PRU_ICSS_OCP_CLK、0x1);
GEL_TextOut ("PRU_ICSS 已启用。\n");
