Portering av Windows Phone 7 til HTC HD2 "10 ganger mer komplisert" enn først antatt

Ikon for lesetid 4 min. lese


Lesere hjelper til med å støtte MSpoweruser. Vi kan få provisjon hvis du kjøper gjennom lenkene våre. Verktøytipsikon

Les vår avsløringsside for å finne ut hvordan du kan hjelpe MSPoweruser opprettholde redaksjonen Les mer

HTC HD2 Pin-out Ingen tenkte på å legge ut Windows Phone 7 til HTC HD2 ville vært enkelt, men i dette innlegget bekrefter Da_G, som har jobbet med det, loddebolt og JTAG-maskin i hånden, at det faktisk viser seg å være en herkulisk utfordring.

Lese hans ganske tekniske innlegg etter pause:

Ja, RustyGrom har det stort sett dekket. For det første heter det "CE" for Compact Edition, og dette er ikke en feilbetegnelse på noen måte. Systemet er designet for å være så kompakt som mulig (det er byggetidsbrytere for alt, slik at du kan slå av nesten alle komponentene for å oppnå et veldig "lett" bilde) selvfølgelig, inkludert drivere for komponenter som ikke er tilstede ville være bortkastet plass, siden de aldri ville bli brukt. Så det er ingen inkludert. På PC-siden gir BIOS et grunnleggende funksjonalitetsnivå ved å bruke et standardgrensesnitt, slik at generiske drivere lages for å bringe plattformen opp til det nivået, og derfra kan leverandørspesifikke drivere lastes.

Hvis du vil sette en innebygd enhet i form av en stasjonær datamaskin og laste Windows 7 på den, starter du med en ferdigmontert datamaskin (skjermkort, hovedkort, cpu, ram, etc.) – slå den på. Den laster opp BIOS som initialiserer den grunnleggende maskinvaren og begynner å laste resten fra harddisken. Den innebygde enheten laster opp NAND XLDR, som kun gir flash lese/skrivestøtte. XLDR laster deretter "EBOOT" eller "IPL" inn i ram på typiske enheter. HTC bruker ikke EBOOT/IPL-modellen som sådan (her allerede bryter vi bort fra "standarden" enda lenger) og har i stedet delt den ut i mARM AMSS (en spesialdesignet RtOS som laster og kjører modemet ARM CPU ) og SPL. Når AMSS laster SPL inn i ram og kjører den, initialiserer SPL aARM (apps ARM CPU), utfører forskjellige kontroller (er vi i oppdateringsmodus? trenger vi å eksponere et flash-grensesnitt for å oppdatere resten av operativsystemet? gjøre vi bare starter opp OS og flytter til side?)

Så kommer du til slutt forbi den svært enhetsspesifikke koden og videre til den (litt) mer generiske CE-kjernen/driverne som kopieres til ram av SPL og kjøres (Native Kernel/XIP-partisjon)

Så hvor forskjellig er CE7/WP7 fra den modellen? (Som er modellen vi nå har i CE5.x/WM6.x) – mARM AMSS gir et annet grensesnitt og initialiseringsprosedyre. Det betyr at noen av WP7-driverne fra en donorenhet vi kan portere fra, ikke vil fungere i det hele tatt med vår nåværende AMSS. Noe som igjen betyr ingen oppstart uten å omskrive driverne/kjernen eller AMSS.

Så for å sammenligne det med en stasjonær PC igjen, må vi skrive en BIOS, et Hardware Abstraksjonslag og et sett med drivere for hver komponent på systemet (sannsynligvis vil en god del av driverne være brukbare når resten er gjort )

Høres jeg sliten ut ennå? Ja, ja det er jeg. Det er sannsynligvis en faktor 10 mer komplisert enn jeg trodde det ville være i utgangspunktet.

Her er JTAG pin outs som må kobles til, forresten. Det er pinner på begge sider av hovedkortet, noe som også virkelig er vondt for meg, siden jeg opprinnelig hadde til hensikt å montere en ekstern port på HD2 slik at jeg enkelt kunne holde en JTAG-forbindelse med den, men du må i utgangspunktet fjern hele hovedkortet for å opprettholde en pålitelig tilkobling, noe som virkelig utelukker å kjøre det på en aktiv enhet.

Selvfølgelig fortsetter Da_G å hacke på sin HTC HD2 (bilder av innsiden av enheten koblet til en JTAG ovenfor), men man lurer på (og dette kan være helligbrøde) med fremgangen til Android på HTC HD2, gjør vi trenger du fortsatt Windows Phone 7 for å holde ute enheter som er relevante i løpet av de neste 12 månedene?

Gi oss din mening nedenfor.

Mer om temaene: htc-hd2, programvare, Windows Phone 7