创龙科技
直播中

创龙科技

10年用户 285经验值
擅长:嵌入式技术
私信 关注

基于AM437x开发板的PRU程序开发入门指南-(1)

本帖最后由 卢子翼 于 2018-5-23 10:20 编辑

分享一下基于AM437x开发板的PRU程序开发入门指南,因为篇幅较长,分为:(1)-安装PRU软件支持包、PRU开发步骤;
(2)-基于仿真器的PRU程序加载与运行
(3)-PRU例程演示。
本帖为篇(1),需要的朋友可以关注一下啦~
本次使用平台是创龙TL437xF-EVM基于ti AM437x ARMCortex-A9 + Xilinx Spartan-6 FPGA处理器;图片如下:
QQ截图20180516103951.png
操作环境: Windows 7/10 64bit

                   Ubuntu 14.04.3

                     CCS6.1.0
1.安装PRU软件支持包
   (创龙开发板配套)双击光盘"ToolsWindows"目录下的pru-addon-v2.0-Windows-Install.exe文件,弹出如下界面:
01.png
      点击Next,弹出如下界面:
02.png
      选择安装在CCS相同的安装目录下,CCS默认安装路径为”C:ti”,然后一直选择Next,直至完成安装。










回帖(4)

创龙科技

2018-5-22 14:16:06
2.PRU开发步骤 1.新建PRU工程打开CCS,点击”File->New->CCS Project”,弹出如下界面:
03.png
请根据实际情况填写或选择CPU型号、PRU工程名、PRU编译器版本等,然后点击Finish,如下图所示:
04.png
如果”Compiler version”不可选,请点击”View-> CCS App Center”,在弹出的界面中搜索PRU,然后选中”PRUCompiler”,再点击”Install Software”,如下图所示:
05.png


06.png
点击接受,继续安装。


举报

创龙科技

2018-5-22 15:15:27
07.png
点击Yes重启CCSCCS重启时会自动安装PRU编译器。通过”CCSApp Center”方式安装PRU编译器时,版本可能与文档图示不一致,但不影响使用。       新建工程后,看到PRU_LED工程信息如下图所示。右击AM437x.cmd文件,在弹出的界面中点击Delete将其删除。因为在后面的编译过程中,将使用其他cmd文件。
08.png
接下来添加PRU_LED工程依赖库文件。右击工程名字PRU_LED,在弹出的界面中点击Properties,弹出如下界面:
09.png
点击”Build->PRUCompiler->Include Options->Add”选择依赖库文件存放目录,如下图所示:
10.png
PRU_LED工程依赖库文件位于光盘资料“Demopruprocessor-1.3-prusspruinclude”目录下。由于选择中文路径会导致编译报错,因此请先将processor-1.3-pruss文件夹拷贝到非中文路径下。       选择依赖库文件存放目录后,然后点击OK,如下图所示:
11.png


12.png






举报

创龙科技

2018-5-23 10:24:01
2 . 程序 编写
本实验程序实现 PRU 对 LED 的控制。AM437x 开发板的 LED 和 GPIO 对应关系如下表
所示:
30.png
右击 PRU_LED 工程,在弹出对话框中选择”Add Files”,添加光盘“Demopru”目录下的
AM437x_PRU.cmd和resource_table_empty.h文件。这两个文件适用于所有AM437x的PRU
工程,每次新建工程均需要添加。
公司官网:www.tronlong.com  销售邮箱:sales@tronlong.com  公司总机:020-8998-6280  11/21
技术论坛:www.51ele.net  技术邮箱:support@tronlong.com  技术热线:020-3893-9734
在 PRU_LED 工程 main.c 文件下,添加以下代码并保存。PRU_LED 工程 main.c 源码位
于光盘资料“DemopruApplicationPRU_LED”目录下。
#include
#include
#include "resource_table_empty.h"
/* LED port address */
#define GPIO5_BASE_ADDR 0x48322000
#define GPIO_OE_OFFSET 0x134
#define GPIO_CLRDATAOUT_OFFSET 0x190
#define GPIO_SETDATAOUT_OFFSET 0x194
//volatile register uint32_t __R30;
volatile pruCfg CT_CFG __attribute__((cregister("PRU_CFG", near), peripheral));
int main(void) {
uint32_t i;
uint32_t value;
/* GPI Mode 0, GPO Mode 0 */
CT_CFG.GPCFG0 = 0;
/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
uint32_t led_set_addr;
uint32_t led_clr_addr;
led_set_addr = GPIO5_BASE_ADDR + GPIO_SETDATAOUT_OFFSET;
led_clr_addr = GPIO5_BASE_ADDR + GPIO_CLRDATAOUT_OFFSET;
*(uint32_t*)led_clr_addr |= 1<<10; //turn down LED0
while(1) {
for (i = 0; i < 4; i++) {
value = 1<<(i + 10);
*(uint32_t*)led_set_addr |= value;
__delay_cycles(100000000); // half-second delay
*(uint32_t*)led_clr_addr |= value;
__delay_cycles(100000000); // half-second delay
}
}
/* Halt the PRU core - shouldn't get here */
// __halt();

}

举报

创龙科技

2018-5-23 10:25:10
3.程序编译
右击 PRU_LED 工程,在弹出对话框中点击”Build Project”,编译将生成可执行程序.out
文件,如下图所示:
13.png

举报

更多回帖

发帖
×
20
完善资料,
赚取积分