0

I want to customize the firmware for the SIMCOM SIM808 module, in one other similar project it's ok but in this project, I faced this problem.

I developed firmware using Real View ARM Workbench IDE version 4.0 and SIM_EAT SDK.

I checked the source code and it was ok. It hasn't any reduntental source file.

this is my scatter file:

 APP  0x90309000 0x00030000
{
  APPCFG +0
  { 
      * (APP_CFG)
  }

  APP0 +0
  { 
    main.o* (APPENTRY)
  }
  APP1 +0
  {
    main.o* (+RO)
    *.o*    (+RO)
  }

  APP_RAM   0xF0380000 0x00060000
  {
    main.o  (+RW,+ZI)
    *.o     (+RW,+ZI)
  }  
}

This is my flash map:

/*********************SIM808 EAT Flash Map****************************/
//  APP1 = 192K @ 0X90309000
//  EEP = 8K    @ 0X90339000
//  Res = 8K    @ 0X9033B000
//  APP2 = 44K  @ 0X9033D000
//  KEY = 40K   @ 0X90348000
//  OTA = 296K  @ 0x90352000
#define APP_MAX_SIZE            ((UINT32)4096*48)
#define CONF_MEM_SIZE           1000
#define OTA_FILE_0_SIZE         300000
#define KEY_MEM_SIZE            ((UINT32)40*1024)

#define CONF_MEM_OFFSET         APP_MAX_SIZE
#define OTA_FILE_0_START_ADD    ((UINT32)4096*73)// 0x00049000
#define KEY_MEM_ADD             0x0003f000 // 63*4096 

this is my main code:

void app_main(void *data)
{
    EatEntryPara_st *para;
    APP_InitRegions();//Init app RAM
    APP_init_clib();
    app_mem_init();
             
    embeddedBoard.Init();
    embeddedBoard.Run();
    
    para = (EatEntryPara_st*)data;

    memcpy(&app_para, para, sizeof(EatEntryPara_st));
    eat_trace(" App Main ENTRY  update:%d result:%d", app_para.is_update_app,app_para.update_app_result);
    if(app_para.is_update_app && app_para.update_app_result)
    {
        eat_update_app_ok();
    }

}

my problem occurs when I uncomment 3 following line code:

//APP_InitRegions();//Init app RAM
//APP_init_clib();
//app_mem_init(); 

eventually, this is my console compiling output:

> armlink --diag_style=ide --info sizes,totals --pad 0x00
> --datacompressor off --largeregions --output app.elf --keep *.o --callgraph --map --symbols --xref --cpu=ARM7EJ-S --feedback=..\Release\lnkfeedback.txt --list=output.lis --scatter=..\scat_SIM808M32.txt --symdefs=..\Release\output.sym -oapp.elf main.o SysModules\util.o SysModules\unicode.o SysModules\str.o SysModules\pow.o SysModules\pdu.o
> SysModules\otafile.o SysModules\ota.o SysModules\fat\ff.o
> SysModules\fat\diskio.o SysModules\crc.o SysModules\convert.o
> SysModules\circularBuffer.o SysModules\aes.o SysModules\W25Q64.o
> SysModules\VirtualRtc.o SysModules\VC0706.o SysModules\UnixTime.o
> SysModules\Timer.o SysModules\TemperatureSensor.o
> SysModules\SubMemory.o SysModules\StrSplit.o SysModules\Serializer.o
> SysModules\SensorEvent.o SysModules\SensorDevice.o
> SysModules\SIM808BT.o SysModules\RepeatEvent.o SysModules\ReadStream.o
> SysModules\OutputPin.o SysModules\NullDebug.o SysModules\NVM_RAM.o
> SysModules\LED.o SysModules\IoMem.o SysModules\ImportantVarsCirMem.o
> SysModules\ImportantVars.o SysModules\HumiditySensor.o
> SysModules\HighPrecisionFLoat.o SysModules\GlobalTimer.o
> SysModules\GlobalDebug.o SysModules\Geofence.o
> SysModules\GeneralProtocol.o SysModules\GSM.o SysModules\GPS_Angool.o
> SysModules\GPSTachoCompass.o SysModules\GPSAverage.o
> SysModules\Encryption.o SysModules\EncryptPtrClass.o
> SysModules\DigitalInput.o SysModules\DateTime.o
> SysModules\DOController.o SysModules\Counter.o SysModules\Config.o
> SysModules\CircularStorageFixPakSize.o SysModules\CircularStorage.o
> SysModules\CPU.o SysModules\CANHandler.o SysModules\CAN.o
> SysModules\BlueTooth.o SysModules\BkpConfMem.o SysModules\BitFuncs.o
> SysModules\BigMemory.o SysModules\BL600.o SysModules\ArrayMem.o
> SIM808EATModules\eat_gpio.o SIM808EATModules\SimcomEatUartIoDevice.o
> SIM808EATModules\SimcomEatSpi.o
> SIM808EATModules\SimcomEatModemIoDevice.o
> SIM808EATModules\SimcomEatBaseUart.o SIM808EATModules\SimcomEATgps.o
> SIM808EATModules\SimcomEATeeprom.o SIM808EATModules\SimcomEATDebug.o
> SIM808EATModules\SIM808EatFlash.o SIM808EATModules\SIM808EATTimer.o
> FleetBoardP\TerminalExCmd.o FleetBoardP\Standby.o
> FleetBoardP\SensorValueExCmd.o FleetBoardP\SensorExCmd.o
> FleetBoardP\SMSProtocol.o FleetBoardP\SMSNumExCmd.o
> FleetBoardP\RepeatEventExCmd.o FleetBoardP\Protocol.o
> FleetBoardP\OutputPinExCmd.o FleetBoardP\OtaExCmd.o
> FleetBoardP\LoggerExCmd.o FleetBoardP\IOPort.o
> FleetBoardP\GeofenceExCmd.o FleetBoardP\GSMHandler.o
> FleetBoardP\GSMExCmd.o FleetBoardP\GPSHndler.o FleetBoardP\GPSExCmd.o
> FleetBoardP\FleetBoard.o FleetBoardP\EventExCmd.o FleetBoardP\Event.o
> FleetBoardP\DataLogger.o FleetBoardP\CmdExecute.o
> FleetBoardP\CanExCmd.o FleetBoardP\BThandler.o FleetBoardP\BTExCmd.o
> FleetBoardP\AlertSmsComplexCmd.o
> ..\..\Lib\SIMCOM\SIM808core\SIM808M32_BT_EMBEDDEDAT\SIM808M32_BT_EAT_PCB01_gprs_MT6261_S00_limit.sym
> ..\..\Lib\SIMCOM\SIM808core\core.lib armlink : warning L6305:  Image
> does not have an entry point. (Not specified or not set due to
> multiple choices.) armlink : error L6220:  Load region APP size
> (197016 bytes) exceeds limit (196608 bytes). armlink : Not enough
> information to produce a SYMDEFs file. armlink : Finished: 1
> information, 1 warning and 1 error messages. Build error occurred,
> build is stopped Time consumed: 841  ms.
273K
  • 29,503
  • 10
  • 41
  • 64
Hossein
  • 24
  • 5
  • You seem to be exceeding the memory size in one of your defined regions. Check your scatter file. Are you using a bootloader? Can you share your scatter file? – Eyal Gerber Jun 18 '23 at 08:34
  • Please provide enough code so others can better understand or reproduce the problem. – Community Jun 19 '23 at 06:44

0 Answers0