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.