- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I want to create a memory like like this
one master, two slaves 0x40000000 - 0x417fffff (24MB) Slave 1 0x41800000 - 0x41fffff (8MB) Slave 2 I create a address span of 24MB (0x1800000), and see the correct values in the memory map. But I get the following error: Error: gdb_rapidio.io_write_master: gdb_srio_swap_inb_wr_if_nrt.wr_slave (0x41800000..0x41ffffff) overlaps gdb_srio_inbound_wr_if_rt.wr_slave (0x40000000..0x41ffffff) I don't know why? Can someone explain what is wrong? With kind regards, JohnLink Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, did you know the reason? I got this error today.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, normally address decoding is done by power of 2. I suppose you can not define an address range of 24M respectively this address span is converted to 32 MB which then occupies the address range from 0x40000000 - 0x41FFFFFF. This memory area then overlaps the 8MB address span. You have to move the address span for slave 2 behind the 32 MB boundary.
Regards, HJS- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That 24M address span is really a 32M space. So that 8M location can be placed at 0x42000000 to avoid this.
Like HJS said, spans are usually powers of 2. In the case of that 24M slave port they probably added a property that tells the tools that only the first 24M of the 32M span is valid. So if you shoved the 8M slave directly after the 24M slave then the decoder will not work properly which is what the tools are trying to tell you.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page