我正在开发一个嵌入式mcu,它有两个内核,都可以看到从0x80000000开始的内存区域。
ADC连接到一个核心,无线电连接到另一个核心。我想将ADC接收到的数据值写入此存储器地址,以便其他内核可以读取它。
有没有人能帮我弄清楚怎么做?这不是微型操作系统,它是裸机。
我会创建一个指向特定地址的结构体的指针吗?
我在一个数组中有两个值,我如何将它们放入结构中?
#define NUM_SAMPLES_POLLED (2)
uint16_t samples_polled[NUM_SAMPLES_POLLED]发布于 2016-08-23 00:51:10
在本例中,您可以将地址直接分配给一个指针:
char *memdata = (char *)0x80000000;请记住,此行为是由实现定义的。
发布于 2016-08-23 02:38:30
如何在这个确切的地址上创建一个包含一些值的数组?
C语言没有定义任何将变量分配给特定地址的机制。实际上,这种机制在托管C实现中可能是不可行的,因为几乎所有现代托管实现都依赖于具有虚拟内存的底层操作系统。
由于您可能正在为独立的实现编写代码(假设目标是嵌入式MCU),因此很可能存在一种机制来满足您的要求。由@dbus.推荐的那个将是一个很好的候选者,但只有通过检查你的文档才能确定。
发布于 2016-08-23 01:26:30
最好阅读工具链中关于定义和使用共享内存的文档。
https://stackoverflow.com/questions/39084750
复制相似问题