uint16 *i=(uint16 *)0x20000000;
uint16 initial_i;
for(initial_i=0;initial_i<1000;initial_i++)
{
*(i+initial_i)=0;
}
这段空间用来给上位机读写数据的,以前我是随便这么初始化下。后来发现这样不好,违反了指针,又没有一开始就保护好这段空间。我在网上看到KEIL C51里的一段代码
#pragma arm section rwdata = "TEST_DATA"
DATA_TEST 0x20000010 0x00000500
{
*(TEST_DATA)
}
; embedded SRAM 20kB
DATA 0x20000510 0x00004700
{
* (+RW, +ZI)
}从 0x20000010 开始,开辟了 0x500字节的地址,其他的变量放在之后的区域,编译器自己处理。那么我定义的数组的首地址就是0x20000010。
我想,能不能像他一样,一开始就开辟好空间,PSOC5上能做到吗?请指教?如果不可以,能否定义一个数组,指定首地址呢?请指教 |