34 #include "dev/flash.h"
36 static uint16_t datamemory_aligned[ELFLOADER_DATAMEMORY_SIZE/2+1];
37 static uint8_t* datamemory = (uint8_t *)datamemory_aligned;
38 #if ELFLOADER_CONF_TEXT_IN_ROM
39 static const char textmemory[ELFLOADER_TEXTMEMORY_SIZE] = {0};
41 static char textmemory[ELFLOADER_TEXTMEMORY_SIZE];
53 #if ELFLOADER_CONF_TEXT_IN_ROM
56 ((
unsigned long)&textmemory[0] & 0xfffffe00) +
57 (((
unsigned long)&textmemory[0] & 0x1ff) == 0? 0: 0x200);
67 #if ELFLOADER_CONF_TEXT_IN_ROM
70 unsigned short *flashptr;
74 flashptr = (
unsigned short *)mem;
77 for(ptr = 0; ptr < size; ptr += READSIZE) {
80 cfs_read(fd, (
unsigned char *)datamemory, READSIZE);
83 if((((
unsigned short)flashptr) & 0x01ff) == 0) {
92 for(i = 0; i < READSIZE / 2; ++i) {
93 flash_write(flashptr, ((
unsigned short *)datamemory)[i]);
101 cfs_read(fd, (
unsigned char *)mem, size);
108 struct elf32_rela *rela,
char *addr)
110 addr += rela->r_addend;
113 cfs_write(fd, (
char *)&addr, 2);