Bạn có ý tưởng cách khởi tạo mảng cấu trúc bắt đầu từ địa chỉ cụ thể trong bộ nhớ (không phải bộ nhớ DDR ảo). Tôi đang làm việc để thực hiện TxRx trên SoC (ARM-FPGA). Về cơ bản ARM (PS) và FPGA (PL) giao tiếp với nhau bằng cách sử dụng bộ nhớ RAM chia sẻ. Hiện tại tôi đang làm việc trên phía máy phát, vì vậy tôi cần phải liên tục tải các gói mà tôi nhận được từ lớp MAC vào bộ nhớ, sau đó Tx của tôi đọc dữ liệu và gửi nó trong không khí. Để đạt được điều này, tôi muốn thực hiện bộ đệm FIFO tròn trên (ARM), theo cách mà tôi có thể lưu trữ tối đa 6 gói vào bộ đệm và gửi từng gói một, trong cùng thời gian tải các gói khác trên các vị trí đã gửi gói. Bởi vì tôi cần phải sử dụng các địa chỉ bộ nhớ cụ thể mà tôi quan tâm là có thể khởi tạo mảng cấu trúc sẽ được lưu trữ trên các địa chỉ cụ thể trong bộ nhớ. Ví dụ tôi muốn mảng của tôi bắt đầu tại địa chỉ 0x400000 và kết thúc tại địa chỉ 0x400000 + MaximumNumberOfPackets x SizeOfPackets Tôi biết cách thực hiện nó cho một cấu trúc tức thời như sau: buffer_t * tmp = (struct buffer_t *) 234881024;Khởi tạo mảng bắt đầu từ địa chỉ cụ thể trong bộ nhớ - Lập trình C
Nhưng làm thế nào để làm điều đó cho mảng cấu trúc?
biên dịch & OS của bạn (nếu có) là gì? –
Xin chào, đó là trình biên dịch ARM gcc – elem
Có thể trợ giúp: http://stackoverflow.com/questions/4067811/how-to-place-a-variable-at-a-given-absolute-address-in-memory-with- gcc –