利用CCS 工具创建一个RTSC工程
-
打开CCS工具,创建好工程目录。等工具打开后按照下面步骤开始创建一个RTSC的工程
-
Project——New CCS Project
-
上面步骤点击完成后出现下面界面
上图是ARM核的设置:
1 .选择类型,选择毫米波雷达传感器(mmWave Sensors)
2 .选择平台,我目前使用的是IWR1843
3 .选择ARM核设置
4 .工程名字,随你自己取,
5 .下拉设置一些参数,按照6,7选择即可 -
下面是DSP的设置,与arm核的设置大致一样
-
下面是Tool-chain 的设置,iwr1843是小端对其,这个注意下,其他按照下图设置就好,DSP中也是一样的。
-
步骤5中ARM与DSP (C67xx[C6000])设置好后,点击Next,随后会出现下面界面
上面界面我们要设置平台的参数。
在ARM 核中platform 手动输入ti.platforms.cortexR:IWR18XX:false:200
在DSP(C67xx[C6000])核中手动输入ti.platforms.c6x:IWR18XX:false:600
目前还没搞懂为什么下拉的菜单中没有选项,是空白的。(如果有大佬的话请告诉我下,通过自己创建platform也
不行,应该是我没学到家,有知道的感谢告知)
上面都设置完成后,点击Finish,会出现下面界面,说明RTSC工程已经创建好了。
-
下面开始创建cmd文件,为说明要自己创建cmd文件,是因为步骤6设置的platform在编译,链接过程中找不到关于MEMORY、SECTIONS的具体分配。
按照上面操作会跳到下图所示,文件名以.cmd为后缀名
上面是创建mss(ARM核中的程序)的cmd文件的步骤,这个时候在工程的目录下会显示这个文件,如下图:
双击这这文件,然后把下面内容复制进去,然后保存。
MEMORY{
PAGE 0:
VECTORS (X) : origin=0x00000000 length=0x00000100
PROG_RAM (RX) : origin=0x00000100 length=0x0007FF00
DATA_RAM (RW) : origin=0x08000000 length=0x00030000
L3_RAM (RW) : origin=0x51000000 length=0x00100000
HWA_RAM (RW) : origin=0x52030000 length=0x00010000
HS_RAM (RW) : origin=0x52080000 length=0x8000
}
SECTIONS{
.intvecs : {} > VECTORS
.text : {} > PROG_RAM
.const : {} > PROG_RAM
.cinit : {} > PROG_RAM
.pinit : {} > PROG_RAM
.bss : {} > DATA_RAM
.data : {} > DATA_RAM
.stack : {} > DATA_RAM
} -
dss(DSP核中的程序)创建CMD文件,如下图,其他步骤与mss一样,先点击dss,当dss旁边出现(Active)
字样,这个时候可以开始操作了。文件以cmd为后缀名即可,名字随便取(linker_c67xx.cmd)
创建好后,双击打开,将下面内容复制进去。
#define L1P_CACHE_SIZE (161024)
#define L1D_CACHE_SIZE (161024)MEMORY
{
L2SRAM_UMAP1: o = 0x007E0000, l = 0x00020000
L2SRAM_UMAP0: o = 0x00800000, l = 0x00020000
}/* Set L1D, L1P and L2 Cache Sizes */
ti_sysbios_family_c64p_Cache_l1dSize = L1D_CACHE_SIZE;
ti_sysbios_family_c64p_Cache_l1pSize = L1P_CACHE_SIZE;
ti_sysbios_family_c64p_Cache_l2Size = 0;SECTIONS
{
/* hard addresses forces vecs to be allocated there */
.vecs: {. = align(32); } > 0x007E0000.fardata: {} >> L2SRAM_UMAP0 | L2SRAM_UMAP1
.const: {} >> L2SRAM_UMAP0 | L2SRAM_UMAP1
.switch: {} >> L2SRAM_UMAP0 | L2SRAM_UMAP1
.cio: {} >> L2SRAM_UMAP0 | L2SRAM_UMAP1
.data: {} >> L2SRAM_UMAP0 | L2SRAM_UMAP1.rodata: {} > L2SRAM_UMAP0 | L2SRAM_UMAP1
.bss: {} > L2SRAM_UMAP0 | L2SRAM_UMAP1
.neardata: {} > L2SRAM_UMAP0 | L2SRAM_UMAP1
.stack: {} > L2SRAM_UMAP0 | L2SRAM_UMAP1
.cinit: {} > L2SRAM_UMAP0 | L2SRAM_UMAP1
.far: {} > L2SRAM_UMAP0 | L2SRAM_UMAP1.text: {} >> L2SRAM_UMAP1 | L2SRAM_UMAP0
} -
创建ccxml文件,如下图,等下调试使用。
按照上面步骤会出现下面界面,然后设置文件名,名字随便取
点击Finish,跳出下面界面,在工程菜单栏可以看到创建的文件,如下图
双击打开,按照下面图片设置,然后保存即可
-
为了方便看代码效果,将main.c中的部分代码做如下修改,这样可以一直跑这个任务
-
点击mss,处于(Active状态),然后按红色框内的按钮。然后等待完成编译,加载。
加载完成后,会出现下面界面,按红色框内的按钮,运行
程序跑起来后,会在控制台中一秒一次一直打印下面的信息。
-
dss与mss操作一样,步骤从10 开始,点击dss(处于Active状态),然后修改main.c代码。接着按步骤11操作,也会在控制台输出上面的信息
本文可以参考https://www.eclipse.org/rtsc/ 这里也有讲解
关于cmd中的地址为什么这样分配,后面会讲下cmd的问题