Difference between revisions of "WinCE port/pt"
(19 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | WinCE port | + | {{WinCE port}} |
− | == | + | O porte do WinCE é bem completo e utilizável. Ele foi iniciado e é mantido por Yury Sidorov. Cabeçalhos Oliver (Oro06) portados da API do WinCE . |
+ | |||
+ | == Estado atual== | ||
* O compilador 2.1.x dá suporte à compilação para WinCE. | * O compilador 2.1.x dá suporte à compilação para WinCE. | ||
* [[ARM]] CPU tem suporte. | * [[ARM]] CPU tem suporte. | ||
Line 14: | Line 16: | ||
Durante o tutorial alguns caminhos serão supostos para demonstrar o processo de contrução. Apenas substitua aqueles caminhos pelos do seu sistema. | Durante o tutorial alguns caminhos serão supostos para demonstrar o processo de contrução. Apenas substitua aqueles caminhos pelos do seu sistema. | ||
+ | |||
'''Passo 1''' - Binutils para cross-compilação: | '''Passo 1''' - Binutils para cross-compilação: | ||
Line 23: | Line 26: | ||
Vamos supor que você os extraiu em: | Vamos supor que você os extraiu em: | ||
<tt>C:\Programas\arm</tt> | <tt>C:\Programas\arm</tt> | ||
+ | |||
'''Passo 2''' - Cross-compilador | '''Passo 2''' - Cross-compilador | ||
Line 38: | Line 42: | ||
− | ''' | + | '''Passo 3''' - O Processo de Construção |
− | |||
− | |||
− | |||
+ | Para construir o cross-compilador é necessário ter uma variável de ambiente <tt>PATH</tt> correta. No Windows é muito fácil ter um <tt>PATH</tt> junto com a informação colocada pelos instaladores. Para se certificar de que o seu Path está correto, crie um arquivo de lote do DOS com o seguinte código: | ||
<pre> | <pre> | ||
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\arm | PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\arm | ||
Line 48: | Line 50: | ||
</pre> | </pre> | ||
− | + | Ponha este arqquivo em <tt>C:\Programas\fpc\compiler</tt>, abra a linha de comando do Windows, vá para esta pasta e execute o arquivo de lote. | |
− | + | No fim da compilação você não deve ter mensagens de erro. | |
− | + | Você deve ter um <tt>ppccrossarm.exe</tt> em <tt>C:\Programas\fpc\compiler</tt> e alguns arquivos <tt>.o</tt> e <tt>.ppu</tt> em <tt>C:\Programas\fpc\rtl\units\arm-wince</tt> | |
− | + | Copie eses arquivos para a sua instalaçãodo Free Pascal. O cross-compilador <tt>ppccrossarm.exe</tt> deve ir para <tt>C:\Programas\fpc\bin\arm-wince</tt> e as unidades para <tt>C:\Programas\fpc\units\arm-wince</tt> | |
+ | '''Passo 4''' - Arquivo de configuração | ||
− | + | Você precisa criar um arquivo de configuração <tt>fpc.cfg</tt> na pasta <tt>C:\Programas\fpc\bin\arm-wince</tt> para usar o <tt>ppccrossarm.exe</tt> com facilidade. | |
− | + | Crie um arquivo <tt>fpc.cfg</tt> vazio na pasta <tt>C:\Programas\fpc\bin\arm-wince</tt> e adicione as seguintes linhas: | |
− | |||
− | |||
<pre> | <pre> | ||
-Twince | -Twince | ||
Line 69: | Line 70: | ||
</pre> | </pre> | ||
− | + | Finalmente adicione <tt>C:\Programas\fpc\bin\arm-wince</tt> e <tt>C:\Programas\fpc\bin\i386-win32</tt> à sua variável de ambiente <tt>PATH</tt>. | |
− | ''' | + | '''Lembre-se de substituir os caminhos pelos do seu sistema.''' |
− | == | + | == Compilando um Projeto de Teste == |
− | + | Você compilou o compilador. Agora, o que você pode fazer com ele? Este é um tutorial para criar um projeto "hello world" com o seu novo compilador. | |
− | ''' | + | '''Passo 1''' - Instalando e Configurando o Emulador |
− | + | Você vai precisar de um emulador Windows CE configurado para ActiveSync. O ActiveSync é necessário para instalar o PocketCMD, uma ferramenta de linha de comando para executar o nosso programa ""hello world'. | |
− | + | Baixe o emulador de dispositivo livre Pocket PC da Microsoft. Ele emula o ARM CPU. http://msdn.microsoft.com/mobility/downloads/Emulator/default.aspx | |
− | + | Existe um tutorial de como configurar o emulador para ActiveSync [http://www.pocketpcfaq.com/faqs/5.0/emulator.htm here]. | |
− | ''' | + | '''Passo 2''' - Instalando a linha de comando |
− | + | Baixe e instale o '''PocketCMD''' da SymbolicTools. Pegue-o [http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD aqui] | |
− | + | Verifique a seção [[#WinCE_port_notes | WinCE port notes]] abaixo para maioresa detalhes sobre linhas de comando em Pocket PC. | |
− | ''' | + | '''Passo 3''' - Compilando |
− | + | Um arquivo de exemplo para compilar: | |
<pre> | <pre> | ||
Line 112: | Line 113: | ||
</pre> | </pre> | ||
− | Sample | + | Sample de linha de comando para compilar <tt>test.pas</tt>: |
<tt>ppcrossarm test.pas</tt> | <tt>ppcrossarm test.pas</tt> | ||
− | + | Você vai pegar o executável <tt>test.exe</tt>. Copie-o para o seu dispositivo Windows CE e execute. | |
− | [http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Interface#Screenshots | + | [http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Interface#Screenshots Aqui] está um screenshot de um programa criado dessa forma. |
− | == | + | == Depurando aplicações WinCE== |
− | + | O GBD pode ser usado para depurar suas aplicações WinCE remotamente via ActiveSync. Baixe o GDB 6.4 para hots Win32 e arm-wince target aqui: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip | |
− | ''' | + | '''Algumas dicas:''' |
− | * | + | * Passe o parâmetro <tt>--tui</tt> para o GDB para habilitar a interface TUI que faz a depuração mais confortável. |
− | * Use unix | + | * Use finais de linha unix (LF only) nos seus fontes Pascal. Senão o GDB vai mostrar os fontes incorretamente. |
− | ''' | + | '''Como usar:''' |
− | + | Primeiro faça a conexão ActiveSync no seu dispositivo Pocket PC. | |
− | + | Então carregue o gdb: | |
− | <tt>gdb --tui < | + | <tt>gdb --tui <seu_executavel_no_pc_local></tt> |
− | + | No prompt do gdb escreva: | |
− | <tt>run</tt> | + | <tt>run</tt> ou só <tt>r</tt> |
− | GDB | + | GDB vai copiar o seu executável para o seu dispositivo na pasta <tt>\gdb</tt> e executá-lo. |
− | + | Aqui está uma pequena lista dos comandos mais necessários do GDB: | |
− | * <tt>r args</tt> - | + | * <tt>r args</tt> - executa o programa com args argumentos. |
* <tt>s</tt> - step into. | * <tt>s</tt> - step into. | ||
* <tt>n</tt> - step over. | * <tt>n</tt> - step over. | ||
− | * <tt>ni</tt> - step over instrument. | + | * <tt>ni</tt> - step over instrument. Pula instrução assembly . |
− | * <tt>c</tt> - | + | * <tt>c</tt> - continua a execução. |
− | * <tt>br <function_name></tt> - | + | * <tt>br <function_name></tt> - configura um breakpoint em <tt>function_name</tt>. Usa <tt>PASCALMAIN</tt> para configurar um breakpoint no início do programa. |
− | * <tt>br <source_file>:<line_number></tt> - | + | * <tt>br <source_file>:<line_number></tt> - configura um breakpoint na linha especificada dos fontes. |
− | * <tt>disas</tt> - | + | * <tt>disas</tt> - mostra um disassembly da localização atual. |
− | * <tt>x/fmt address</tt> - dump | + | * <tt>x/fmt address</tt> - dump de memória no endereço com formato especial. use "help x" para maiores informações. |
− | * <tt>bt</tt> - back trace. | + | * <tt>bt</tt> - back trace. imprime back trace da chamada do stack. |
− | * <tt>where</tt> - | + | * <tt>where</tt> - Mostra a linha atual e a função e o stack das chamadas that got you there. |
− | * <tt>q</tt> - | + | * <tt>q</tt> - Sai do gdb. |
− | + | Para aprender mais sobre como usar o GDB leia sua documentação aqui: http://www.gnu.org/software/gdb/documentation | |
− | == | + | == Construindo bibliotecas do FPC== |
− | + | Se você quer construir bibliotecas disponíveis com o FPC vá para a pasta de bibliotecas e execute: | |
<pre> | <pre> | ||
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\fpc\compiler;C:\Programas\arm | PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\fpc\compiler;C:\Programas\arm | ||
Line 166: | Line 167: | ||
</pre> | </pre> | ||
− | + | Por exemplo você quer construir a FCL. Vá para a pasta <tt>fpc\fcl</tt> e execute o comando abaixo. Você vai obter as unidades da FCL compiladas em <tt>fpc\fcl\units\arm-wince</tt>. | |
+ | |||
+ | == Documentação == | ||
+ | |||
+ | === Algumas notas sobre WinCE === | ||
− | + | * Se você estiver obtendo "Uknown error! Error code : 0xc1" e usando dlls, o erro deve haver porque você está usando algumas export entries não encontradas no arquivo da dll. Verifique a seção export da dll e o nome delas e como utilizá-las. | |
− | === | + | === Notas sobre o porte para WinCE === |
− | |||
− | + | * Procedimento <tt>'''chdir'''</tt> sempre produz um erro (WinCE não suporta configuração do diretório atual). | |
− | * <tt>'''chdir'''</tt> | + | * Todos os arquivos/diretórios precisam ser absolutos (começados com \). |
− | * | + | * WinCE é OS unicode. Todos os parâmetros de seqüência de caracteres para chamadas de API precisam ser PWideChar. |
− | * WinCE | + | * WinCE n~~ao tem suuporte para environment strings. |
− | * WinCE | + | * WinCE não tem suporte para aplicações de console por padrão. Mas você pode instalar suporte para console você mesmo. Note que o FPC cria aplicações GUI para WinCE target por padrão. Para criar aplicações de console você deve usar <tt>-WC</tt> compiler switch ou pôr a diretiva <tt>{$APPTYPE CONSOLE}</tt> nos fontes.<br>Para habilitar console em WinCE instale um dos seguintes programas: |
− | * WinCE | + | ** '''PocketCMD''' by SymbolicTools. Essa é a solução recomendada. Pegue-o [http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD aqui] |
− | ** '''PocketCMD''' by SymbolicTools. | + | **'''PPC Command Shell''' de Microsoft Windows Mobile Developer Power Toys. Pegue-o [http://www.microsoft.com/downloads/details.aspx?FamilyID=74473fd6-1dcc-47aa-ab28-6a2b006edfe9&displaylang=en aqui]<br>PPC Command Shell tem menos funcionalidades que o PocketCMD. Tem também menos problemas. Um deles - uma nova janela de console é aberta mesmo se uma aplicação é iniciada da linha de comando do console. |
− | **'''PPC Command Shell''' | ||
− | == | + | == Veja também== |
* [[Tested Unstable Revisions]] | * [[Tested Unstable Revisions]] | ||
Line 189: | Line 192: | ||
== Links == | == Links == | ||
− | * | + | * Informações úteis de WinCE http://www.rainer-keuchel.de/documents.html |
− | * | + | * Emulador standalone de disositivo Pocket PC da Microsoft. Ele emula o ARM CPU. Pegue-o [http://www.microsoft.com/downloads/details.aspx?FamilyId=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en aqui] |
− | * KOL-CE. WinCE | + | * KOL-CE. Porte para WinCE da biblioteca KOL GUI. http://sourceforge.net/projects/kol-ce/ |
− | * Mamaich Pocket PC | + | * Porte Mamaich de Pocket PC de GCC http://mamaich.uni.cc |
− | * [http://www.stack.nl/~marcov/buildfaq.pdf Buildfaq] | + | * [http://www.stack.nl/~marcov/buildfaq.pdf Buildfaq] é uma FAQ geral sobre como construir e configurar o FPC. |
− | + | Aqui estão alguns links relacionados com a arquitetura ARM CPU | |
− | * [http://www.armcorepro.com/ ARM Core Developers Forum] | + | * [http://www.armcorepro.com/ ARM Core Developers Forum] Não muito ativo entretanto. |
* [http://www.inf.u-szeged.hu/gcc-arm/ GCC ARM Improvement Project] | * [http://www.inf.u-szeged.hu/gcc-arm/ GCC ARM Improvement Project] | ||
− | * [http://www.heyrick.co.uk/assembler/index.html ARM ASSEMBLER] | + | * [http://www.heyrick.co.uk/assembler/index.html ARM ASSEMBLER] Boa informação e código relacioando com a linguagem arm assembly. |
* [http://www.gnuarm.com/ GNU ARM toolchain for Cygwin, Linux and MacOS] | * [http://www.gnuarm.com/ GNU ARM toolchain for Cygwin, Linux and MacOS] | ||
* [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcechp40/html/ccrefarmguide.asp Microsoft Windows CE .NET 4.2 ARM Guide] | * [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcechp40/html/ccrefarmguide.asp Microsoft Windows CE .NET 4.2 ARM Guide] | ||
− | * [http://soc.csie.ndhu.edu.tw/source/intro_embedded/ch2-arm-2.ppt ARM Instruction Sets & Programs] | + | * [http://soc.csie.ndhu.edu.tw/source/intro_embedded/ch2-arm-2.ppt ARM Instruction Sets & Programs] Informação muito boa e concisa sobre arquitetura arm |
− | * [http://web.njit.edu/~baltrush/arm_stuff/ARMInst.ppt The ARM Instruction Set ] | + | * [http://web.njit.edu/~baltrush/arm_stuff/ARMInst.ppt The ARM Instruction Set ] Outro bom arquivo power point sobre arm |
− | == | + | == Contato == |
− | + | Escreva qualquer pergunta sobre o porte para WinCE para [mailto:yury_sidorov@mail.ru Yury Sidorov] |
Latest revision as of 17:37, 29 September 2007
This article applies to Windows CE only.
See also: Multiplatform Programming Guide
│
English (en) │
italiano (it) │
português (pt) │
русский (ru) │
中文(台灣) (zh_TW) │
O porte do WinCE é bem completo e utilizável. Ele foi iniciado e é mantido por Yury Sidorov. Cabeçalhos Oliver (Oro06) portados da API do WinCE .
Estado atual
- O compilador 2.1.x dá suporte à compilação para WinCE.
- ARM CPU tem suporte.
- As seguintes plataformas têm suporte:
- Pocket PC 2002 – WinCE versão 3.0
- Pocket PC 2003 – WinCE versão 4.20
- Pocket PC 2003 Segunda Edição – WinCE versão 4.21
- Windows Mobile 5.0 – WinCE versão 5.0
- RTL e unidades FCL estão funcionando.
Construindo o Tutorial
Durante o tutorial alguns caminhos serão supostos para demonstrar o processo de contrução. Apenas substitua aqueles caminhos pelos do seu sistema.
Passo 1 - Binutils para cross-compilação:
Estas são as ferramentas básicas necessárias para criar executáveis, como: Vinculador (ld), Montador (as), Archiver (ar) (cria arquivos .a do smartlinking), strip e algumas outras.
Você precisa das binutils para cross-compilação para ARM-WinCE, pegue-os em ftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip for Win32.
Extraia-os em algum diretório no caminho da sua máquina. Vamos supor que você os extraiu em: C:\Programas\arm
Passo 2 - Cross-compilador
Agora você precisa construir o cross-compilador FPC para o processador ARM. Para fazer isso você precisa dos fontes mais recentes do FPC 2.1.x e a instalação do FPC 2.0.4 funcionando para Win32.
Pegue os fontes mais recentes do repositório do 2.1.x no Subversion: http://www.freepascal.org/develop.html#svn
Vamos supor que o seu ompilador FPC para Win32 está localizado em: C:\Programas\fpc\bin\i386-win32
E os seus fontes do Free Pascal 2.1.x estão localizados em: C:\Programas\fpc
Passo 3 - O Processo de Construção
Para construir o cross-compilador é necessário ter uma variável de ambiente PATH correta. No Windows é muito fácil ter um PATH junto com a informação colocada pelos instaladores. Para se certificar de que o seu Path está correto, crie um arquivo de lote do DOS com o seguinte código:
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\arm make cycle CPU_TARGET=arm OS_TARGET=wince
Ponha este arqquivo em C:\Programas\fpc\compiler, abra a linha de comando do Windows, vá para esta pasta e execute o arquivo de lote.
No fim da compilação você não deve ter mensagens de erro.
Você deve ter um ppccrossarm.exe em C:\Programas\fpc\compiler e alguns arquivos .o e .ppu em C:\Programas\fpc\rtl\units\arm-wince
Copie eses arquivos para a sua instalaçãodo Free Pascal. O cross-compilador ppccrossarm.exe deve ir para C:\Programas\fpc\bin\arm-wince e as unidades para C:\Programas\fpc\units\arm-wince
Passo 4 - Arquivo de configuração
Você precisa criar um arquivo de configuração fpc.cfg na pasta C:\Programas\fpc\bin\arm-wince para usar o ppccrossarm.exe com facilidade.
Crie um arquivo fpc.cfg vazio na pasta C:\Programas\fpc\bin\arm-wince e adicione as seguintes linhas:
-Twince -FuC:\Programas\fpc\units\arm-wince -XParm-wince- -FDC:\Programas\arm
Finalmente adicione C:\Programas\fpc\bin\arm-wince e C:\Programas\fpc\bin\i386-win32 à sua variável de ambiente PATH.
Lembre-se de substituir os caminhos pelos do seu sistema.
Compilando um Projeto de Teste
Você compilou o compilador. Agora, o que você pode fazer com ele? Este é um tutorial para criar um projeto "hello world" com o seu novo compilador.
Passo 1 - Instalando e Configurando o Emulador
Você vai precisar de um emulador Windows CE configurado para ActiveSync. O ActiveSync é necessário para instalar o PocketCMD, uma ferramenta de linha de comando para executar o nosso programa ""hello world'.
Baixe o emulador de dispositivo livre Pocket PC da Microsoft. Ele emula o ARM CPU. http://msdn.microsoft.com/mobility/downloads/Emulator/default.aspx
Existe um tutorial de como configurar o emulador para ActiveSync here.
Passo 2 - Instalando a linha de comando
Baixe e instale o PocketCMD da SymbolicTools. Pegue-o aqui
Verifique a seção WinCE port notes abaixo para maioresa detalhes sobre linhas de comando em Pocket PC.
Passo 3 - Compilando
Um arquivo de exemplo para compilar:
program test; {$apptype console} var Str: string; begin WriteLn('Software Developed with:'); WriteLn('The Free Pascal Compiler'); WriteLn(''); WriteLn('Please, enter your name:'); ReadLn(Str); WriteLn('Your name is: ' + Str); end.
Sample de linha de comando para compilar test.pas:
ppcrossarm test.pas
Você vai pegar o executável test.exe. Copie-o para o seu dispositivo Windows CE e execute.
Aqui está um screenshot de um programa criado dessa forma.
Depurando aplicações WinCE
O GBD pode ser usado para depurar suas aplicações WinCE remotamente via ActiveSync. Baixe o GDB 6.4 para hots Win32 e arm-wince target aqui: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip
Algumas dicas:
- Passe o parâmetro --tui para o GDB para habilitar a interface TUI que faz a depuração mais confortável.
- Use finais de linha unix (LF only) nos seus fontes Pascal. Senão o GDB vai mostrar os fontes incorretamente.
Como usar:
Primeiro faça a conexão ActiveSync no seu dispositivo Pocket PC.
Então carregue o gdb:
gdb --tui <seu_executavel_no_pc_local>
No prompt do gdb escreva:
run ou só r
GDB vai copiar o seu executável para o seu dispositivo na pasta \gdb e executá-lo.
Aqui está uma pequena lista dos comandos mais necessários do GDB:
- r args - executa o programa com args argumentos.
- s - step into.
- n - step over.
- ni - step over instrument. Pula instrução assembly .
- c - continua a execução.
- br <function_name> - configura um breakpoint em function_name. Usa PASCALMAIN para configurar um breakpoint no início do programa.
- br <source_file>:<line_number> - configura um breakpoint na linha especificada dos fontes.
- disas - mostra um disassembly da localização atual.
- x/fmt address - dump de memória no endereço com formato especial. use "help x" para maiores informações.
- bt - back trace. imprime back trace da chamada do stack.
- where - Mostra a linha atual e a função e o stack das chamadas that got you there.
- q - Sai do gdb.
Para aprender mais sobre como usar o GDB leia sua documentação aqui: http://www.gnu.org/software/gdb/documentation
Construindo bibliotecas do FPC
Se você quer construir bibliotecas disponíveis com o FPC vá para a pasta de bibliotecas e execute:
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\fpc\compiler;C:\Programas\arm make OS_TARGET=wince CPU_TARGET=arm PP=ppcrossarm.exe
Por exemplo você quer construir a FCL. Vá para a pasta fpc\fcl e execute o comando abaixo. Você vai obter as unidades da FCL compiladas em fpc\fcl\units\arm-wince.
Documentação
Algumas notas sobre WinCE
- Se você estiver obtendo "Uknown error! Error code : 0xc1" e usando dlls, o erro deve haver porque você está usando algumas export entries não encontradas no arquivo da dll. Verifique a seção export da dll e o nome delas e como utilizá-las.
Notas sobre o porte para WinCE
- Procedimento chdir sempre produz um erro (WinCE não suporta configuração do diretório atual).
- Todos os arquivos/diretórios precisam ser absolutos (começados com \).
- WinCE é OS unicode. Todos os parâmetros de seqüência de caracteres para chamadas de API precisam ser PWideChar.
- WinCE n~~ao tem suuporte para environment strings.
- WinCE não tem suporte para aplicações de console por padrão. Mas você pode instalar suporte para console você mesmo. Note que o FPC cria aplicações GUI para WinCE target por padrão. Para criar aplicações de console você deve usar -WC compiler switch ou pôr a diretiva {$APPTYPE CONSOLE} nos fontes.
Para habilitar console em WinCE instale um dos seguintes programas:- PocketCMD by SymbolicTools. Essa é a solução recomendada. Pegue-o aqui
- PPC Command Shell de Microsoft Windows Mobile Developer Power Toys. Pegue-o aqui
PPC Command Shell tem menos funcionalidades que o PocketCMD. Tem também menos problemas. Um deles - uma nova janela de console é aberta mesmo se uma aplicação é iniciada da linha de comando do console.
Veja também
Links
- Informações úteis de WinCE http://www.rainer-keuchel.de/documents.html
- Emulador standalone de disositivo Pocket PC da Microsoft. Ele emula o ARM CPU. Pegue-o aqui
- KOL-CE. Porte para WinCE da biblioteca KOL GUI. http://sourceforge.net/projects/kol-ce/
- Porte Mamaich de Pocket PC de GCC http://mamaich.uni.cc
- Buildfaq é uma FAQ geral sobre como construir e configurar o FPC.
Aqui estão alguns links relacionados com a arquitetura ARM CPU
- ARM Core Developers Forum Não muito ativo entretanto.
- GCC ARM Improvement Project
- ARM ASSEMBLER Boa informação e código relacioando com a linguagem arm assembly.
- GNU ARM toolchain for Cygwin, Linux and MacOS
- Microsoft Windows CE .NET 4.2 ARM Guide
- ARM Instruction Sets & Programs Informação muito boa e concisa sobre arquitetura arm
- The ARM Instruction Set Outro bom arquivo power point sobre arm
Contato
Escreva qualquer pergunta sobre o porte para WinCE para Yury Sidorov