Write an OS for PocketPc
Posted: Sun May 18, 2008 7:17 am
It's a few of time that i've a question.
Is possible, write an OS for pocketpc?
Is possible, write an OS for pocketpc?
The Place to Start for Operating System Developers
http://f.osdev.org/
Your welcome, for my ARM Dev work, i use FasmArm http://arm.flatassembler.net/Karlosoft wrote:thank you very much
Yes, WinARM is the one I'm using although there are other options also.pcmattman wrote:You can also compile a GCC toolchain that targets ARM (arm-elf, for instance)
Can you give us some context?Karlosoft wrote:What are the "elf executable at 0"???
Code: Select all
format ELF dwarf executable at 0
entry start
section 'one' executable readable writeable align 020h
start: mov r1,string_hello
mov r0,4 ;SYS_WRITE0
swi 0x123456 ;Multi-ICE DCC semihosting
mov r0,18h ;angel_SWIreason_ReportException
mov r1,20000h ;Software reason code
orr r1,r1,26h ;ADP_Stopped_ApplicationExit
swi 0x123456 ;Multi-ICE DCC semihosting
string_hello db 'Hello ARM semi-hosting world',13,10,0
Code: Select all
format ELF executable
entry start
segment readable executable
start: mov r0,0
add r1,pc,hello-$-8
mov r2,hello_len
swi 0x900004
mov r0,6
swi 0x900001
hello: db 'Hello world',10
hello_len=$-hello
;dummy section for bss, see http://board.flatassembler.net/topic.php?t=3689
segment writeable
Code: Select all
:****************************************;
; ARM BootLoader. ;
;----------------------------------------;
; Prog by Dex. ;
; Coded with FasmARM. ;
; Part of the the x86 to ARM DexOS port. ;
; C:\fasmarm ArmBoot.asm ArmBoot.bin ;
; ;
; C Bamford.2006(c) ;
;****************************************;
format binary
org 0 ; code starts at offset 0.
use32 ; use 32-bit code.
b reset ; b lable (is the same as jmp lable in x86 asm )
b undefined_instruction
b software_interrupt
b prefetch_abort
b data_abort
b not_used
b irq
b fiq
align 4
;********************************;
; boot start. ;
;********************************;
reset:
; here is where your start up code would go.
LetsLoop:
b LetsLoop
;********************************;
; just Loop For Now ;) ;
;********************************;
undefined_instruction:
software_interrupt:
prefetch_abort:
data_abort:
not_used:
irq:
fiq:
LetsLoopForNow:
b LetsLoopForNow