2019-07-24 12:31发布
edmund1234 发表于 2018-9-14 20:58 是内部。。。。
32初学者 发表于 2018-9-16 14:18 u32 testsram[250000] __attribute__((at(0X68000000)));//测试用数组 void main() {
xuyaqi 发表于 2018-9-16 16:11 这些定义与程序都是软件,最后由编译器变成硬件指令序列(机器码序列),由硬件系统执行,你没有看到FSMC ...
32初学者 发表于 2018-9-16 14:02 请问大神,这个定义然后通过编译器自动写入数据到外部SRAM和通过fsmc写入到外部SRAM有什么不一样吗?
最多设置5个标签!
请问大神,这个定义然后通过编译器自动写入数据到外部SRAM和通过fsmc写入到外部SRAM有什么不一样吗?
u32 testsram[250000] __attribute__((at(0X68000000)));//测试用数组
void main()
{
for(ts=0;ts<250000;ts++)testsram[ts]=ts;//预存测试数据
}
我在代码里面看到这个,这样前面定义数组,后面往数组里写入数据后,可以直接缓存到外部SRAM中吗?这个过程也没用看到FSMC的地址与数据线作用啊,请问这样写到外部SRAM与通过FSMC写到外部SRAM有何不同吗?
还有测试的数据与数组预存的数据不会起到冲突吗?
噢噢,明白了,其实fsmc与编译器直接关系,是fsmc寄存器配置完成的,只不过用了库函数没有深入看到底层的调用关系
没有不一样,编译器所编译的程序只是告诉单片机需要通过FSMC来对外部的某个地址单元进行读取或者是写入操作,编译器是标记着个区域在外部SRAM中。不是说编译器去写外部SRAM。
一周热门 更多>