为了实现dsp与windows驱动的交互,在dsp端需要一个内存地址固定的数组作为交互缓冲区。
为了实现内存地址固定,可以使用
#progma DATA_SECTION ,即在c文件中
#pragma DATA_SECTION(pcisearch,".my_pci_sect")
char pcisearch[100];
在cmd文件中加入
SECTIONS
{
.my_pci_sect:{} > PCIMEM
}
PCIMEM是在dsp/BIOS的配置文件中加入的,PCIMEM存储区中不放置其他内容。这样,pcisearch数组就会在PCIMEM的起始点作为数组开始的内存地址。
注意事项:
1 在#progma DATA_SECTION命令中,不要忘记在双引号中的那个“.”
2 在dsp/bios中设置PCIMEM时,注意不要让它和别的存储区(SDRAM)重叠。并且应该设置为data space
3 dsp/bios会自动生成一个cmd文件,如projectcfg.cmd 。这时应该使用自己写的cmd文件,将projectcfg.cmd从工程中删除。手写cmd内容可以如下:
/* include config-generated link command file */
-l Configuration1cfg.cmd
/* include libraries for the IOM driver and PIO adapter */
-l c64xx_pci.l64
-l cslDM642.lib
/* self definition sections
SECTIONS
{
.my_pci_sect:{} > PCIMEM
}