mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 09:19:45 +02:00
* Added NDS CPU detection routine (ARM7 can't handle dsp extensions)
git-svn-id: trunk@8026 -
This commit is contained in:
parent
05315c7018
commit
9021bbad98
@ -30,6 +30,7 @@ interface
|
||||
{$i softfpu.pp}
|
||||
{$undef fpc_softfpu_interface}
|
||||
|
||||
function IsARM9(): boolean;
|
||||
procedure InitHeapThread;
|
||||
|
||||
const
|
||||
@ -94,6 +95,22 @@ implementation
|
||||
|
||||
{$i ndsbios.inc}
|
||||
|
||||
{ NDS CPU detecting function (thanks to 21o6):
|
||||
--------------------------------------------
|
||||
"You see, the ARM7 can't write to bank A of VRAM, but it doesn't give any
|
||||
error ... it just doesn't write there... so it's easily determinable what
|
||||
CPU is running the code"}
|
||||
function IsARM9(): boolean;
|
||||
var
|
||||
Dummy : pword absolute $06800000;
|
||||
tmp: word;
|
||||
begin
|
||||
tmp := Dummy^;
|
||||
Dummy^ := $C0DE;
|
||||
IsARM9 := Dummy^ = $C0DE;
|
||||
Dummy^ := tmp;
|
||||
end;
|
||||
|
||||
{$ifdef FPC_HAS_FEATURE_PROCESSES}
|
||||
function GetProcessID: SizeUInt;
|
||||
begin
|
||||
@ -210,7 +227,9 @@ begin
|
||||
// fake_heap_end := pchar(0);
|
||||
{ Set up signals handlers }
|
||||
|
||||
fpc_cpucodeinit;
|
||||
if IsARM9 then
|
||||
fpc_cpucodeinit;
|
||||
|
||||
{ Setup heap }
|
||||
InitHeap;
|
||||
SysInitExceptions;
|
||||
|
Loading…
Reference in New Issue
Block a user