mirror of
https://github.com/libretro/Mu.git
synced 2026-09-22 22:56:12 +00:00
Switch to Tungsten T3, widescreen is more important than a keyboard
This commit is contained in:
@@ -158,7 +158,7 @@ support_palm_os5{
|
||||
../../src/armv5te/thumb_interpreter.cpp \
|
||||
../../src/armv5te/mem.c \
|
||||
../../src/armv5te/mmu.c \
|
||||
../../src/tungstenCBus.c
|
||||
../../src/tungstenT3Bus.c
|
||||
|
||||
HEADERS += \
|
||||
../../src/pxa255/pxa255_CPU.h \
|
||||
@@ -187,7 +187,7 @@ support_palm_os5{
|
||||
../../src/armv5te/mmu.h \
|
||||
../../src/armv5te/armsnippets.h \
|
||||
../../src/armv5te/literalpool.h \
|
||||
../../src/tungstenCBus.h
|
||||
../../src/tungstenT3Bus.h
|
||||
}
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
@@ -477,7 +477,7 @@ QString EmuWrapper::debugGetCpuRegisterString(){
|
||||
QString regString = "";
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(palmEmulatingTungstenT3){
|
||||
for(uint8_t regs = 0; regs < 16; regs++)
|
||||
regString += QString::asprintf("R%d:0x%08X\n", regs, pxa255GetRegister(regs));
|
||||
regString.resize(regString.size() - 1);//remove extra '\n'
|
||||
|
||||
@@ -11,7 +11,7 @@ add Dragonball OG/EZ/VZ CPU builtin LCD controller support too muExpDriver, some
|
||||
v1.1.0 to v3.2.0(*** ** 2020 - *** ** 2020)
|
||||
|
||||
Core:
|
||||
add Palm Tungsten C support
|
||||
add Palm Tungsten T3 support
|
||||
|
||||
------------------------------------------
|
||||
v1.0.0 to v1.1.0(Feb 25 2019 - Easter 2019)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "specs/emuFeatureRegisterSpec.h"
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
#include "tungstenCBus.h"
|
||||
#include "tungstenT3Bus.h"
|
||||
#include "pxa255/pxa255.h"
|
||||
#endif
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
//0xFFFFF000<->0xFFFFFDFF Hardware Registers
|
||||
//0xFFFFFE00<->0xFFFFFFFF Bootloader, only reads from UART into RAM and jumps to it, never executed in consumer Palms
|
||||
|
||||
//Memory map of Tungsten C
|
||||
//Memory map of Tungsten T3
|
||||
//This is a map of the boot address ranges, it can be(and is) changed with the MMU
|
||||
//0x00000000<->0x003FFFFF ROM
|
||||
//0xA0000000<->0xA3FFFFFF RAM
|
||||
@@ -45,7 +45,7 @@
|
||||
static bool emulatorInitialized = false;
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
bool palmEmulatingTungstenC;
|
||||
bool palmEmulatingTungstenT3;
|
||||
#endif
|
||||
uint8_t* palmRam;
|
||||
uint8_t* palmRom;
|
||||
@@ -63,7 +63,7 @@ double palmClockMultiplier;//used by the emulator to overclock the emulated P
|
||||
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
static void emulatorTungstenCFrame(void){
|
||||
static void emulatorTungstenT3Frame(void){
|
||||
//CPU
|
||||
pxa255Execute();
|
||||
}
|
||||
@@ -94,10 +94,10 @@ uint32_t emulatorInit(uint8_t* palmRomData, uint32_t palmRomSize, uint8_t* palmB
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
//0x00000004 is boot program counter on 68k, its just 0x00000000 on ARM
|
||||
palmEmulatingTungstenC = !(palmRomData[0x4] || palmRomData[0x5] || palmRomData[0x6] || palmRomData[0x7]);
|
||||
palmEmulatingTungstenT3 = !(palmRomData[0x4] || palmRomData[0x5] || palmRomData[0x6] || palmRomData[0x7]);
|
||||
|
||||
if(palmEmulatingTungstenC){
|
||||
//emulating Tungsten C
|
||||
if(palmEmulatingTungstenT3){
|
||||
//emulating Tungsten T3
|
||||
bool dynarecInited = false;
|
||||
|
||||
dynarecInited = pxa255Init(&palmRom, &palmRam);
|
||||
@@ -111,10 +111,10 @@ uint32_t emulatorInit(uint8_t* palmRomData, uint32_t palmRomSize, uint8_t* palmB
|
||||
pxa255Deinit();
|
||||
return EMU_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
memcpy(palmRom, palmRomData, uintMin(palmRomSize, TUNGSTEN_C_ROM_SIZE));
|
||||
if(palmRomSize < TUNGSTEN_C_ROM_SIZE)
|
||||
memset(palmRom + palmRomSize, 0x00, TUNGSTEN_C_ROM_SIZE - palmRomSize);
|
||||
memset(palmRam, 0x00, TUNGSTEN_C_RAM_SIZE);
|
||||
memcpy(palmRom, palmRomData, uintMin(palmRomSize, TUNGSTEN_T3_ROM_SIZE));
|
||||
if(palmRomSize < TUNGSTEN_T3_ROM_SIZE)
|
||||
memset(palmRom + palmRomSize, 0x00, TUNGSTEN_T3_ROM_SIZE - palmRomSize);
|
||||
memset(palmRam, 0x00, TUNGSTEN_T3_RAM_SIZE);
|
||||
memset(palmFramebuffer, 0x00, 320 * 320 * sizeof(uint16_t));//TODO:PXA255 code doesnt always output a picture like my SED1376 code, so clear the buffer to prevent garbage from being displayed before the first render
|
||||
memset(palmAudio, 0x00, AUDIO_SAMPLES_PER_FRAME * 2/*channels*/ * sizeof(int16_t));
|
||||
memset(&palmInput, 0x00, sizeof(palmInput));
|
||||
@@ -127,7 +127,7 @@ uint32_t emulatorInit(uint8_t* palmRomData, uint32_t palmRomSize, uint8_t* palmB
|
||||
palmCycleCounter = 0.0;
|
||||
palmEmuFeatures.info = enabledEmuFeatures;
|
||||
|
||||
//initialize components, I dont think theres much in a Tungsten C
|
||||
//initialize components, I dont think theres much in a Tungsten T3
|
||||
pxa255Framebuffer = palmFramebuffer;
|
||||
blip_set_rates(palmAudioResampler, AUDIO_CLOCK_RATE, AUDIO_SAMPLE_RATE);
|
||||
sandboxInit();
|
||||
@@ -193,7 +193,7 @@ uint32_t emulatorInit(uint8_t* palmRomData, uint32_t palmRomSize, uint8_t* palmB
|
||||
void emulatorDeinit(void){
|
||||
if(emulatorInitialized){
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(!palmEmulatingTungstenC){
|
||||
if(!palmEmulatingTungstenT3){
|
||||
#endif
|
||||
free(palmRom);
|
||||
free(palmRam);
|
||||
@@ -204,7 +204,7 @@ void emulatorDeinit(void){
|
||||
free(palmAudio);
|
||||
blip_delete(palmAudioResampler);
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC)
|
||||
if(palmEmulatingTungstenT3)
|
||||
pxa255Deinit();
|
||||
#endif
|
||||
free(palmSdCard.flashChipData);
|
||||
@@ -215,8 +215,8 @@ void emulatorDeinit(void){
|
||||
void emulatorHardReset(void){
|
||||
//equivalent to taking the battery out and putting it back in
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
memset(palmRam, 0x00, TUNGSTEN_C_RAM_SIZE);
|
||||
if(palmEmulatingTungstenT3){
|
||||
memset(palmRam, 0x00, TUNGSTEN_T3_RAM_SIZE);
|
||||
emulatorSoftReset();
|
||||
sdCardReset();
|
||||
pxa255SetRtc(0, 0, 0, 0);
|
||||
@@ -235,7 +235,7 @@ void emulatorHardReset(void){
|
||||
void emulatorSoftReset(void){
|
||||
//equivalent to pushing the reset button on the back of the device
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(palmEmulatingTungstenT3){
|
||||
palmEmuFeatures.value = 0x00000000;
|
||||
palmClockMultiplier = 1.00;
|
||||
pxa255Reset();
|
||||
@@ -259,7 +259,7 @@ void emulatorSoftReset(void){
|
||||
|
||||
void emulatorSetRtc(uint16_t days, uint8_t hours, uint8_t minutes, uint8_t seconds){
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC)
|
||||
if(palmEmulatingTungstenT3)
|
||||
pxa255SetRtc(days, hours, minutes, seconds);
|
||||
else
|
||||
#endif
|
||||
@@ -274,10 +274,10 @@ uint32_t emulatorGetStateSize(void){
|
||||
size += sizeof(uint64_t);//palmSdCard.flashChipSize, needs to be done first to verify the malloc worked
|
||||
size += sizeof(uint16_t) * 2;//palmFramebuffer(Width/Height)
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(palmEmulatingTungstenT3){
|
||||
size += pxa255StateSize();
|
||||
size += expansionHardwareStateSize();
|
||||
size += TUNGSTEN_C_RAM_SIZE;//system RAM buffer
|
||||
size += TUNGSTEN_T3_RAM_SIZE;//system RAM buffer
|
||||
}
|
||||
else{
|
||||
#endif
|
||||
@@ -318,7 +318,7 @@ bool emulatorSaveState(uint8_t* data, uint32_t size){
|
||||
|
||||
//state validation, wont load states that are not from the same state version
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
writeStateValue32(data + offset, SAVE_STATE_VERSION | (palmEmulatingTungstenC ? SAVE_STATE_FOR_TUNGSTEN_C : 0));
|
||||
writeStateValue32(data + offset, SAVE_STATE_VERSION | (palmEmulatingTungstenT3 ? SAVE_STATE_FOR_TUNGSTEN_T3 : 0));
|
||||
#else
|
||||
writeStateValue32(data + offset, SAVE_STATE_VERSION);
|
||||
#endif
|
||||
@@ -339,7 +339,7 @@ bool emulatorSaveState(uint8_t* data, uint32_t size){
|
||||
offset += sizeof(uint16_t);
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(palmEmulatingTungstenT3){
|
||||
//chips
|
||||
pxa255SaveState(data + offset);
|
||||
offset += pxa255StateSize();
|
||||
@@ -347,8 +347,8 @@ bool emulatorSaveState(uint8_t* data, uint32_t size){
|
||||
offset += expansionHardwareStateSize();
|
||||
|
||||
//memory
|
||||
memcpy(data + offset, palmRam, TUNGSTEN_C_RAM_SIZE);
|
||||
offset += TUNGSTEN_C_RAM_SIZE;
|
||||
memcpy(data + offset, palmRam, TUNGSTEN_T3_RAM_SIZE);
|
||||
offset += TUNGSTEN_T3_RAM_SIZE;
|
||||
}
|
||||
else{
|
||||
#endif
|
||||
@@ -457,7 +457,7 @@ bool emulatorLoadState(uint8_t* data, uint32_t size){
|
||||
|
||||
//state validation, wont load states that are not from the same state version
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(readStateValue32(data + offset) != (SAVE_STATE_VERSION | (palmEmulatingTungstenC ? SAVE_STATE_FOR_TUNGSTEN_C : 0)))
|
||||
if(readStateValue32(data + offset) != (SAVE_STATE_VERSION | (palmEmulatingTungstenT3 ? SAVE_STATE_FOR_TUNGSTEN_T3 : 0)))
|
||||
return false;
|
||||
#else
|
||||
if(readStateValue32(data + offset) != SAVE_STATE_VERSION)
|
||||
@@ -484,7 +484,7 @@ bool emulatorLoadState(uint8_t* data, uint32_t size){
|
||||
offset += sizeof(uint16_t);
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(palmEmulatingTungstenT3){
|
||||
//chips
|
||||
pxa255LoadState(data + offset);
|
||||
offset += pxa255StateSize();
|
||||
@@ -492,8 +492,8 @@ bool emulatorLoadState(uint8_t* data, uint32_t size){
|
||||
offset += expansionHardwareStateSize();
|
||||
|
||||
//memory
|
||||
memcpy(palmRam, data + offset, TUNGSTEN_C_RAM_SIZE);
|
||||
offset += TUNGSTEN_C_RAM_SIZE;
|
||||
memcpy(palmRam, data + offset, TUNGSTEN_T3_RAM_SIZE);
|
||||
offset += TUNGSTEN_T3_RAM_SIZE;
|
||||
}
|
||||
else{
|
||||
#endif
|
||||
@@ -603,19 +603,19 @@ bool emulatorLoadState(uint8_t* data, uint32_t size){
|
||||
|
||||
uint32_t emulatorGetRamSize(void){
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC)
|
||||
return TUNGSTEN_C_RAM_SIZE;
|
||||
if(palmEmulatingTungstenT3)
|
||||
return TUNGSTEN_T3_RAM_SIZE;
|
||||
#endif
|
||||
return M515_RAM_SIZE;
|
||||
}
|
||||
|
||||
bool emulatorSaveRam(uint8_t* data, uint32_t size){
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(size < TUNGSTEN_C_RAM_SIZE)
|
||||
if(palmEmulatingTungstenT3){
|
||||
if(size < TUNGSTEN_T3_RAM_SIZE)
|
||||
return false;
|
||||
|
||||
memcpy(data, palmRam, TUNGSTEN_C_RAM_SIZE);
|
||||
memcpy(data, palmRam, TUNGSTEN_T3_RAM_SIZE);
|
||||
}
|
||||
else{
|
||||
#endif
|
||||
@@ -633,11 +633,11 @@ bool emulatorSaveRam(uint8_t* data, uint32_t size){
|
||||
|
||||
bool emulatorLoadRam(uint8_t* data, uint32_t size){
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC){
|
||||
if(size < TUNGSTEN_C_RAM_SIZE)
|
||||
if(palmEmulatingTungstenT3){
|
||||
if(size < TUNGSTEN_T3_RAM_SIZE)
|
||||
return false;
|
||||
|
||||
memcpy(palmRam, data, TUNGSTEN_C_RAM_SIZE);
|
||||
memcpy(palmRam, data, TUNGSTEN_T3_RAM_SIZE);
|
||||
}
|
||||
else{
|
||||
#endif
|
||||
@@ -728,8 +728,8 @@ void emulatorEjectSdCard(void){
|
||||
|
||||
void emulatorRunFrame(void){
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC)
|
||||
emulatorTungstenCFrame();
|
||||
if(palmEmulatingTungstenT3)
|
||||
emulatorTungstenT3Frame();
|
||||
else
|
||||
#endif
|
||||
emulatorM515Frame();
|
||||
|
||||
@@ -16,7 +16,7 @@ extern "C" {
|
||||
#include "specs/emuFeatureRegisterSpec.h"//for feature names
|
||||
|
||||
//DEFINE INFO!!!
|
||||
//define EMU_SUPPORT_PALM_OS5 to compile in Tungsten C support(not reccomended for low power devices)
|
||||
//define EMU_SUPPORT_PALM_OS5 to compile in Tungsten T3 support(not reccomended for low power devices)
|
||||
//define EMU_MULTITHREADED to speed up long loops
|
||||
//define EMU_MANAGE_HOST_CPU_PIPELINE to optimize the CPU pipeline for the most common cases
|
||||
//define EMU_NO_SAFETY to remove all safety checks
|
||||
@@ -57,14 +57,14 @@ static void debugLog(char* str, ...){};
|
||||
#define SD_CARD_NCR_BYTES 1//how many 0xFF bytes come before the R1 response
|
||||
#define SAVE_STATE_VERSION 0x00000001
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
#define SAVE_STATE_FOR_TUNGSTEN_C 0x80000000
|
||||
#define SAVE_STATE_FOR_TUNGSTEN_T3 0x80000000
|
||||
#endif
|
||||
|
||||
|
||||
//system constants
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
#define TUNGSTEN_C_CPU_CRYSTAL_FREQUENCY 3686400
|
||||
#define TUNGSTEN_C_RTC_CRYSTAL_FREQUENCY 32768
|
||||
#define TUNGSTEN_T3_CPU_CRYSTAL_FREQUENCY 3686400
|
||||
#define TUNGSTEN_T3_RTC_CRYSTAL_FREQUENCY 32768
|
||||
#endif
|
||||
#define M515_CRYSTAL_FREQUENCY 32768
|
||||
#define AUDIO_SAMPLES_PER_FRAME (AUDIO_SAMPLE_RATE / EMU_FPS)
|
||||
@@ -157,7 +157,7 @@ typedef struct{
|
||||
|
||||
//emulator data, some are GUI interface variables, some should be left alone
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
extern bool palmEmulatingTungstenC;//read allowed, but not advised
|
||||
extern bool palmEmulatingTungstenT3;//read allowed, but not advised
|
||||
#endif
|
||||
extern uint8_t* palmRom;//dont touch
|
||||
extern uint8_t* palmRam;//access allowed to read save RAM without allocating a giant buffer, but endianness must be taken into account
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
#include "fatFs/ff.h"
|
||||
|
||||
|
||||
#define LAUNCHER_SD_CARD_SIZE (32 * 0x100000) //SD card size for the default boot configuration
|
||||
#define LAUNCHER_BOOT_TIMEOUT 10 //in seconds
|
||||
|
||||
bool launcherSaveSdCardImage;
|
||||
|
||||
|
||||
@@ -15,7 +18,7 @@ static void launcherInstallPassMeM515(void){
|
||||
}
|
||||
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
static void launcherInstallPassMeTungstenC(void){
|
||||
static void launcherInstallPassMeTungstenT3(void){
|
||||
//works like PassMe on a DS, boots from a different slot
|
||||
}
|
||||
#endif
|
||||
@@ -255,7 +258,10 @@ uint32_t launcherLaunch(launcher_file_t* files, uint32_t fileCount, uint8_t* sra
|
||||
}
|
||||
else{
|
||||
//load apps to new SD card image
|
||||
error = emulatorInsertSdCard(NULL, totalSize, NULL);
|
||||
if(totalSize > LAUNCHER_SD_CARD_SIZE)
|
||||
return EMU_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
error = emulatorInsertSdCard(NULL, LAUNCHER_SD_CARD_SIZE, NULL);
|
||||
if(error != EMU_ERROR_NONE)
|
||||
return error;
|
||||
|
||||
@@ -270,10 +276,10 @@ uint32_t launcherLaunch(launcher_file_t* files, uint32_t fileCount, uint8_t* sra
|
||||
emulatorLoadRam(sramData, sramSize);
|
||||
}
|
||||
else{
|
||||
//install a pre specified RAM image for the current device(m515 or Tungsten C)needs to be decompressed into palmRam here
|
||||
//install a pre specified RAM image for the current device(m515 or Tungsten T3)needs to be decompressed into palmRam here
|
||||
#if defined(EMU_SUPPORT_PALM_OS5)
|
||||
if(palmEmulatingTungstenC)
|
||||
launcherInstallPassMeTungstenC();
|
||||
if(palmEmulatingTungstenT3)
|
||||
launcherInstallPassMeTungstenT3();
|
||||
else
|
||||
#endif
|
||||
launcherInstallPassMeM515();
|
||||
@@ -281,11 +287,10 @@ uint32_t launcherLaunch(launcher_file_t* files, uint32_t fileCount, uint8_t* sra
|
||||
|
||||
emulatorSoftReset();
|
||||
|
||||
/*
|
||||
//execute frames until launch is completed(or failed with a time out)
|
||||
success = false;
|
||||
palmEmuFeatures.value = 'RUN0';
|
||||
for(index = 0; index < EMU_FPS * 10; index++){
|
||||
palmEmuFeatures.value = cardImageHasBeenLoaded ? 'RUNC' : 'RUNA';
|
||||
for(index = 0; index < EMU_FPS * LAUNCHER_BOOT_TIMEOUT; index++){
|
||||
emulatorRunFrame();
|
||||
if(palmEmuFeatures.value == 'STOP'){
|
||||
success = true;
|
||||
@@ -296,7 +301,6 @@ uint32_t launcherLaunch(launcher_file_t* files, uint32_t fileCount, uint8_t* sra
|
||||
//timed out
|
||||
if(!success)
|
||||
return EMU_ERROR_RESOURCE_LOCKED;
|
||||
*/
|
||||
|
||||
//worked
|
||||
return EMU_ERROR_NONE;
|
||||
|
||||
@@ -46,7 +46,7 @@ ifeq ($(EMU_SUPPORT_PALM_OS5), 1)
|
||||
$(EMU_PATH)/armv5te/emuVarPool.c \
|
||||
$(EMU_PATH)/armv5te/mem.c \
|
||||
$(EMU_PATH)/armv5te/mmu.c \
|
||||
$(EMU_PATH)/tungstenCBus.c
|
||||
$(EMU_PATH)/tungstenT3Bus.c
|
||||
EMU_SOURCES_CXX += $(EMU_PATH)/armv5te/arm_interpreter.cpp \
|
||||
$(EMU_PATH)/armv5te/thumb_interpreter.cpp \
|
||||
$(EMU_PATH)/armv5te/cpu.cpp \
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
#include "../armv5te/mem.h"
|
||||
#include "../armv5te/os/os.h"
|
||||
#include "../armv5te/translate.h"
|
||||
#include "../tungstenCBus.h"
|
||||
#include "../tungstenT3Bus.h"
|
||||
#include "../emulator.h"
|
||||
|
||||
|
||||
#define PXA255_IO_BASE 0x40000000
|
||||
#define PXA255_MEMCTRL_BASE 0x48000000
|
||||
|
||||
#define PXA255_TIMER_TICKS_PER_FRAME (TUNGSTEN_C_CPU_CRYSTAL_FREQUENCY / EMU_FPS)
|
||||
#define PXA255_TIMER_TICKS_PER_FRAME (TUNGSTEN_T3_CPU_CRYSTAL_FREQUENCY / EMU_FPS)
|
||||
|
||||
|
||||
uint16_t* pxa255Framebuffer;
|
||||
@@ -50,15 +50,15 @@ bool pxa255Init(uint8_t** returnRom, uint8_t** returnRam){
|
||||
//regions
|
||||
//ROM
|
||||
mem_areas[0].base = PXA255_ROM_START_ADDRESS;
|
||||
mem_areas[0].size = TUNGSTEN_C_ROM_SIZE;
|
||||
mem_areas[0].size = TUNGSTEN_T3_ROM_SIZE;
|
||||
mem_areas[0].ptr = mem_and_flags + mem_offset;
|
||||
mem_offset += TUNGSTEN_C_ROM_SIZE;
|
||||
mem_offset += TUNGSTEN_T3_ROM_SIZE;
|
||||
|
||||
//RAM
|
||||
mem_areas[1].base = PXA255_RAM_START_ADDRESS;
|
||||
mem_areas[1].size = TUNGSTEN_C_RAM_SIZE;
|
||||
mem_areas[1].size = TUNGSTEN_T3_RAM_SIZE;
|
||||
mem_areas[1].ptr = mem_and_flags + mem_offset;
|
||||
mem_offset += TUNGSTEN_C_RAM_SIZE;
|
||||
mem_offset += TUNGSTEN_T3_RAM_SIZE;
|
||||
|
||||
//memory regions that are not directly mapped to a buffer are not added to mem_areas
|
||||
//adding them will cause SIGSEGVs
|
||||
|
||||
Reference in New Issue
Block a user