Hi,
Can someone explain me step by step how to generate a binary file suitable to be used as a flat binary in RAM ?
I would like to get an output of only one section mixing code&data to produce a one section AIS file at the end using HexAIS program. ( this AIS is to be called by a secondary bootloader UBL that copies it to RAM before giving it the hand.)
At the momment I still get 3 sections in the AIS image at the end of the process...
I tried to do this in my linker file :
--absolute_exe
--rom_model
--fill_value 0x00000000
-c
-heap 0x1000
-stack 0x1000
--library=rts6740.lib
--map_file sdram.map
MEMORY
{
L1D (RX) : origin = 0x00F00000 length = 0x00008000
L1P (RX) : origin = 0x00E00000 length = 0x00008000
L2 (RWX) : origin = 0x00800000 length = 0x00040000
SHARED (RWX) : origin = 0x80000000 length = 0x00020000
APP_SDRAM (RWX) : origin = 0xC0000000 length = 0x00100000
FREE_SDRAM (RW) : origin = 0xC1000000 length = 0xC4000000
}
SECTIONS
{
.text > SHARED
.const > SHARED
.data > SHARED
.bss > SHARED
.cinit > SHARED
.pinit > SHARED
.stack > SHARED
.far > SHARED
.sysmem > SHARED
.switch > SHARED
.cio > SHARED
}
Best regards,
Frederic
This are the settings used for the AIS generation
--------------------------------------------------------------------------------------------------------------------------
; General settings that can be overwritten in the host code
; that calls the AISGen library.
[General]
; Can be 8 or 16 - used in emifa
busWidth=8
; EMIFA,NONE
; EMIFA required for NOR boot modes, along with busWidth field
BootMode=none
; NO_CRC,SECTION_CRC,SINGLE_CRC
crcCheckType=NO_CRC
[INPUTFILE]
FILENAME=sdram.out
USEENTRYPOINT=Set
; Enable sequential read mode for boot modes that support it.
; Does not impact boot modes that don't use it.
[AIS_SeqReadEnable]
; No Params required - simply include this section for the fast boot function to be called
;[FASTBOOT]
------------------------------------------------------------------------------------------------------------------------------------
This is the AIS file generated :
// Generated by aisparse v1.14
const unsigned int nvram_image[] = {
/* 0x00000000 */ 0x41504954, // MAGIC
/* 0x00000004 */ 0x58535901, // Section Load
/* 0x00000008 */ 0x00800000, // Address (DSP L2 RAM, Local)
/* 0x0000000C */ 0x000065C0, // Size
/* 0x00000010 */ // Data
/* 0x00000010 */ 0x257725F7,
/* 0x00000014 */ 0x95779677,
/* 0x00000018 */ 0x86778777,
/* 0x0000001C */ 0xC2460647,
/* 0x00000020 */ 0x100C8813,
/* 0x00000024 */ 0x01BCD4F7,
.........................
* 0x000065C0 */ 0x00000000,
/* 0x000065C4 */ 0x00000000,
/* 0x000065C8 */ 0x00000000,
/* 0x000065CC */ 0x00000000,
/* 0x000065D0 */ 0x58535901, // Section Load
/* 0x000065D4 */ 0x00808930, // Address (DSP L2 RAM, Local)
/* 0x000065D8 */ 0x00000284, // Size
/* 0x000065DC */ // Data
/* 0x000065DC */ 0x46494D45,
/* 0x000065E0 */ 0x6E492042,
/* 0x000065E4 */ 0x61697469,
.........................
/* 0x00006854 */ 0x41393837,
/* 0x00006858 */ 0x45444342,
/* 0x0000685C */ 0x00250046,
/* 0x00006860 */ 0x58535901, // Section Load
/* 0x00006864 */ 0x00808BB8, // Address (DSP L2 RAM, Local)
/* 0x00006868 */ 0x00000194, // Size
/* 0x0000686C */ // Data
/* 0x0000686C */ 0x00000048,
/* 0x00006870 */ 0x008085C0,
/* 0x00006874 */ 0x00000000,
.........................
/* 0x000069F4 */ 0x00000000,
/* 0x000069F8 */ 0x00000000,
/* 0x000069FC */ 0x00000000,
/* 0x00006A00 */ 0x58535963, // Sequential Read Enable
/* 0x00006A04 */ 0x58535906, // Jump N Close
/* 0x00006A08 */ 0x008060C0, // Address (DSP L2 RAM, Local)
};