Ok, here is the problem.
I have a bunch of variables that I need to have a ROM version of at a specific address and a RAM version at any RAM address. No problem yet, I just did two copies of each variable (one ROM and one RAM) and a init function which copies from ROM to RAM.
The problem is that the init function which copies the variables is really huge and take a lot of flash. So I started looking at just using a memcopy over all of the variables, but I do not know how to garantee that the variables is in the right order and with the same padding. I cannot use a struct to accompish this as I need to find the variables in the map-file.
Then I found the copytable and saw that all the RAM variables was copied from the ROM with the copytable. The problem is that I cannot move the ROM versions of the copytable variables.
So my question is really can I add an additional area with specific variables to the copytable?
This is how it looks like in the map-file:
| mpe:dspr0 | | .data.Temp.VariableA(13026) | 0x00000001 | 0x700027fe | 0x000027fe | 0x00000001 |
| mpe:pflash0 | | [.data.Temp.VariableA] (35650) | 0x00000001 | 0xa002281e | 0x0002281e | 0x00000001 |
I want to change the ROM address 0xa002281e to another which I can choose, but just for specific variables, I do not want to move the entire copytable ROM area.
Please let me know if you need additional information, I am sure you do, this is my first time writing such a post.
/Johan
I have a bunch of variables that I need to have a ROM version of at a specific address and a RAM version at any RAM address. No problem yet, I just did two copies of each variable (one ROM and one RAM) and a init function which copies from ROM to RAM.
The problem is that the init function which copies the variables is really huge and take a lot of flash. So I started looking at just using a memcopy over all of the variables, but I do not know how to garantee that the variables is in the right order and with the same padding. I cannot use a struct to accompish this as I need to find the variables in the map-file.
Then I found the copytable and saw that all the RAM variables was copied from the ROM with the copytable. The problem is that I cannot move the ROM versions of the copytable variables.
So my question is really can I add an additional area with specific variables to the copytable?
This is how it looks like in the map-file:
| mpe:dspr0 | | .data.Temp.VariableA(13026) | 0x00000001 | 0x700027fe | 0x000027fe | 0x00000001 |
| mpe:pflash0 | | [.data.Temp.VariableA] (35650) | 0x00000001 | 0xa002281e | 0x0002281e | 0x00000001 |
I want to change the ROM address 0xa002281e to another which I can choose, but just for specific variables, I do not want to move the entire copytable ROM area.
Please let me know if you need additional information, I am sure you do, this is my first time writing such a post.
/Johan