F0563100 Error Message (RL78 CC-RL)

Question:

The error “F0563100:Section address overflow out of range : ".const" appears in the RL78 CC-RL compiler when the const array size gets big.
How do I get around this?

Answer:

.const section is a section for const data with near attribute. It can be accessed when it is allocated in the mirror area of the microcontroller (ROM side), but now it is being allocated over the area. That’s why the error occurs at linking.

For example, with RL78/G14（R5F104PJ）, the mirror area (ROM side) is address 0x3000 to address 0x9eff.

To reduce the .const section size, you can fit these in the mirror area (ROM side) by using the far attribute; adding the _far type qualifier to several of the const data variables.
The const data specified with the _ far type qualifier can be allocated in the .constf section. Take note that the pointer which indicates the far attribute should be used when the const data with the _far type qualifier is used as a pointer.