keil: ERROR L107:ADDRESS SPACE OVERFlOW [How to Solve]

There are 6 pins, one pin is connected to DS18B20 to measure the temperature, two pins are connected to the IIC adapter board of pcf8574 to drive LCD1602, and three pins are connected to DS1302 to take the clock.

All right! 128 bytes of on-chip data storage area ram is exhausted. Keil compiles and directly informs:
error l107: address space overflow

Reason:
LCD1602 custom characters are placed in the RAM area
unsigned char chr_nian[]={0x08,0x1F,0x02,0x0F,0x0A,0x1F,0x02,0x00};// Year
unsigned char Chr_yue[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00};// Month
unsigned char Chr_ri[]={0x1E,0x12,0x12,0x1E,0x12,0x12,0x1E,0x00};// Day
unsigned char # Chr_du[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};// Degrees Celsius
consumes too much RAM capacity

Solution: simply add “code” and transfer all to the program storage area. Equivalent to the assembled DB pseudo instruction
unsigned char code Chr_nian[]={0x08,0x1F,0x02,0x0F,0x0A,0x1F,0x02,0x00};// Year
unsigned char code Chr_yue[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00};// Month
unsigned char code Chr_ri[]={0x1E,0x12,0x12,0x1E,0x12,0x12,0x1E,0x00};// Day
unsigned char code Chr_du[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};// Degrees Celsius

Read More: