Você está na página 1de 7

Relatrio1

EA871

LeonardoTamshiroSilvaRA:105238
JooCarlosBarbosaLeiteRA:102776

QUESTES

1) Um microcontrolador (MCU) pode ser considerado um computador de tamanho de um chip programado para
executar funes especficas de controle do dispositivo em que ele est embarcado/embutido. Como nos PCs, ele
possui ncleos de processamento. O ncleo de processamento do MKL25 baseado na arquitetura ARM. Qual o
princpio da arquitetura ARM (Advanced RISC Machine)? Qual a sua relao com a arquitetura RISC ( Reduced
InstructionSetComputing)?

ARMumafamliadeinstruesdearquiteturade32bitsbaseadasnoRISC(ReducedInstructionsSetComputer)

2) Um pipeline de instruo uma tcnica aplicada no projeto de um processador para aumentar a sua vazo. Ele
consiste em dividir um ciclo de instruo em diversos estgios formando um pipeline, de forma que esses estgios
possam ser executados em paralelo. No caso do ncleo CortexM0+, quantos estgios tem o seu pipeline de
instruo?Quaissoasoutrascaractersticasdestencleo?(vejapp.3637em[1])

OpipelinedeinstruodoncleoCortexM0+possui2estgios.Asoutrascaractersticasdessemesmoncleo
soArquiteturaSimplificadaeAcessosimplesaI/O.

3) Em nosso MCU h dois tipos de memria regravvel: a memria FLASH e a memria RAM. Qual a principal
diferena entre estes dois tipos de memria? Em qual espao de endereos esto mapeadas estas unidades de
memria?(leiaasSees3.6.1.1,3.6.3.1,4.2,4.3e4.4de[1]).

A principal diferena que a memria FLASH armazena os dados mesmo quando ela desenergizada enquanto a
memriaRAMperdeosseusdados.
128 Kb o tamanho da memria Flash e 16 Kb o tamanho da memria SRAM. A memria Flash e o Registrador
Flash esto localizados em diferentes endereos Base. A memria RAM dividia entre SRAM_L e SRAM_U, ambas
formaumblococontguionomapadamemria.
FlashTamanhode128kbeespaoocupadode0x0000_00000x0001_FFFF
RAM Tamanho de 16kb e espao ocupado dividido em dois espaos, SRAM_L e SRAM_U. O espao SRAM_L
ancorado de 0x1FFF_F000 a 0x1FFF_FFFF e o espao SRAM_U ancorado de 0x2000_0000 a 0x2000_2FFF. Assim,
oSRAM_LocupaeoSRAM_Uocupadoespaoreservado.

4) Excees e interrupes, identificados por um nmero de pedido de interrupo (IRQ Interrupt ReQuest), so
eventos que causam o desvio da execuo de uma sequncia de instrues para um outro bloco de instrues
prdefinido, denominado rotina de servio (ISR Interrupt Service Routine). Excees so eventos (sncronos) gerados
durante a execuo de um programa, enquanto interrupes so eventos (assncronos) gerados pelos perifricos
externos. Seo B1.3.2 de [3] sintetiza o modelo de exceo e a poltica de prioritizao no nosso MCU. Uma
exceo/interrupo modelada por um nmero de vetor, um nvel de prioridade e uma entrada no vetor de interrupo
que veremos no experimento 4. H ainda um controlador de interrupes vetorizadas aninhadas (Nested Vectored
Interrupt Controller, NVIC) com nveis de prioridade (de atendimento) programveis para prprocessar os eventos
assncronos,deformaqueoprocessadorenxergueapenasumeventoexternoporvez(leiaSeoB3.4.1de[3]).

a) Qual a funo do nmero de vetor no modelo de exceo do nosso MCU (veja Seo B1.3.2 de [3])? Como este
nmeroassociadoaumnmerodeIRQ(vejaSeo3.3.2.3de[1])?

Ovalormantidonovetordeinterrupooendereodeentradadopontodeexceoasermanipulado.Nmero
dovetor=Ovalorasermanipuladonapilhaquandoainterrupoexecutada.
IRQnumber=noncleodacontagemdafontedeinterrupo,queovetordonmeromenos16.

b)QualafunodonveldeprioridadenapolticadeprioritizaodonossoMCU?(vejaSeoB1.3.2de[3])

Onveldeprioridadedeexceotemcomoobjetivoindicaraordememqueasexceesseroexecutadas.

c)Combasenasrespostasdositensanteriores,oqueumainterrupovetorizadaaninhada?

Uma interrupo vetorizada aninhada so interrupes que conforme elas ocorrem, suas chamadas j so
colocadas em um vetor (seguindo e prioridade) umas seguidas das outras para que todas possam ser realizadas
noseudevidomomentoequenenhumpedidodeinterruposejaperdido.

5) Um processador RISC apresenta um repertrio de instrues bem menor e bem mais eficiente que o de um
processador CISC. Por outro lado, ele requer uma quantidade maior de instrues para executar um mesmo
programa, demandando um espao maior de memria. Como memria um quesito crtico para os MCUs, foi
proposto o repertrio de instrues Thumb de 16 bits como uma alternativa para as instrues de 32 bits da
arquitetura ARM. O ncleo Cortex M0+ s executa o repertrio de instrues Thumb. Quais so as vantagens e
limitaesdestasinstruesemrelaosdemais?(vejaSeo1.2de[7],[9],[11]).

Thumb implementa a 16bit instruo em uma arquitetura 32bit para fornecer melhor desempenho que uma
arquitetura 16bit e maior densidade de cdigo que uma arquitetura 32bit. A desvantagem desse sistema que
necessita de mais memria para armazenar um mesmo programa quem um CISC e tambm necessita de mais
instrues.

6) Todos processadores dispem de um conjunto de registradores para armazenamento de dados de trabalho


temporrios e controle de fluxo de execuo das instrues, como stack pointer (SP), program counter(PC) e status
register (SR). Quantos e quais so os registradores de uso geral do ncleo ARM Cortex M0+ que trabalha somente no
modo Thumb? E os registradores especiais? Especifique as funes destes registradores especiais no controle do
fluxodoprograma.(leiaaSeo3.5de[2]).

Existem13registradoresdeusogeral,sendoelesdeR0atR12.Josregistradoresespeciaissoosseguintes:
PC:ProgramCounter(R15)
LR:LinkRegister(R14)
MSPMainStackPointerePSPProcessStackPointer,ambossodoR13
Control:Controlaapilha
PSP:ProgramStatusRegister
Primask:Impedeaativaodetodasasexceescomumaprioridadeajustvel
PSR:ProgramStatusRegister

7) Descreva os modos de endereamento para as instrues LOAD e STORE. possvel, numa nica instruo e
envolvendoumnicoregistrador,lerovalordeumaposiodememriafixa?(vejaaspginas35e36de[2]).

OendereamentoparaainstruoLOADpodeserumdosseguintes:
Imediato:ovalordocampooperandooprpriodado
Relativo: o endereo efetivo obtido pela soma do contedo do PC com um deslocamento contido no campo de
endereodainstruo
Registrador Direto: o operando indica um registrador que contm o dado ou ainda pode apontar para um
registradorquepossuiiodado(ponteiros)
Pilha: so uitlizados os comandos PUSH e POP respectivamente para inserir ou retirar um dado da pilha. Para
estemodo,outilizadooStackPointer,ochamadoapontadordepilhaquecontmoendereodotopodapilha
Base:apginareferenciadaapginazero,definindooacessoaoprimeiroblocodememria.
J para a instruo STORE, s temos os endereamentos por registrador direto, pilha e imediato. Estes 3 modos
funcionamdamesmaformaqueparaoLOAD.
Quando o modo de endereamento do tipo imediato possvel ler o valor de uma posio de memria fixa em
umasinstruo,casocontrrio,nopossvel.

8) Um elemento fundamental para um sistema digital o clock. A execuo de todas as instrues baseada nas
pulsaes dos seus sinais. Como gerar com preciso estes sinais ainda um grande desafio [10]. A placa
FRDMKL25, onde o nosso MCU est integrado, utiliza um cristal de 8MHz como fonte externa de clock(Seo 5.3.1 de
[5]). A partir deste clock, o mdulo OSC (Oscillator) do nosso MCU gera um sinal de referncia (Cap. 25 de [1]). E, para
atender as demandas especficas dos mdulos integrados ao nosso MCU, h ainda o mdulo MCG (Multipurpose
Clock Generator) que seleciona e deriva a partir do sinal de referncia inmeros sinais de clock, como mostra a Figura
241 de [1], e o mdulo SIM ( System Integration Module) que controla a ativao (gating) independente dos sinais de
clock para cada mdulo (Figura 51 de [1]). Quais dos sinais de clock gerados pelo MCG podem ser utilizados nos
perifricosequalafaixadassuasfrequncias?(Seo5.4.1de[1])

MCGPLLClockFrequnciaAcimade100Mhz
MCGFLLClockFrequnciaAcimade48Mhz
MCGFixedFrequencyFrequnciaAcimade48Mhz
MCGInternalReferenceClockFrequncia3040kHzSlowIRCou4MHzFastIRC

9) Uma das caractersticas desejadas de um ambiente de desenvolvimento do projeto de um sistema embarcado a


possibilidade de depurar o seu hardware e software. Na pgina 2 de [4], h um diagrama em blocos da placa
FRDMKL25. Nele podese ver um agrupamento de blocos denominado OpenSDA. Um dos seus aplicativos, P&E
Debug Application, prov ao microcontroladoralvo a interface de depurao JTAG (Joint Test Action Group) e a SWD
(Serial Wire Debug). Pesquise: como, atravs do OpenSDA, um computador hospedeiro consegue depurar e testar o
softwarecarregadonoMCUdaplacaFRDMKL25?(leiaSeo1.2.2de[6]e[8]).

A P&E Debug Application uma OpenSDA que fornece depurao e uma porta virtual serial tudo em uma aplicao
s. A P&E fornece uma interface de depurao que controla a JTAG ou a SWD. Tambm fornece uma classe de
comunicao USB(CDC) que faz a ponte de comunicao serial entre o host USB e uma interface seria UART no
processador alvo.A JTAG fornece um metdo de vefiricao para sistema muito complexos, mantendo a contagem de
pinos. Estando o ncleo do processador escondido o caminho JTAG fornece uma conexo direta com a lgica de
depuraodedentrodaCPU,tendoassimummeiodecontrolareobservaraexecuodoprograma.

10)DeacordocomoesquemticodaplacaFRDMKL25:

a)emquaispinossoligadososcatodosdoLEDRGB?(veja[4]eSeo5.6de[5]).

OscatodosestoligadosaospinosPTB18(Red),PTB19(Green)ePTD1ouD13(Blue).

b) qual a frequncia externa de clock do microcontroladoralvo? E a do microcontrolador que executa um aplicativo do


OpenSDA?(veja[4]eFigura1de[5]).

Ambasasfrequnciassode8MHz.

REFERNCIAS

Todasasrefernciaspodemserencontradasnoslinksabaixoouaindanapginadocurso.
[1]KL25SubFamilyReferenceManualFreescaleSemiconductors(doc.NumberKL25P80M48SF0RM),Setembro
2012.
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/KL25P80M48SF0RM.pdf
[2]CortexM0+TechnicalReferenceManualARMLimited.
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/CortexM0+.pdf
[3]ARMv6MArchitectureReferenceManualARMLimited.
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/ARMv6M.pdf
[4]EsquemticodaplacaFRDM:arquivoFRDMKL25Z_SCH.
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/FRDMKL25Z_SCH_REV_E.pdf
[5]FRDMKL25ZUsersManualFreescaleSemiconductors,Setembro2012.
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/FRDMKL25Z.pdf
[6]OpenSDAUsersGuideFreescaleSemiconductors,Setembro2012.
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/OPENSDAUG.pdf
[7]ARM7TDMITechnicalReferenceManual(Rev3)
ftp://ftp.dca.fee.unicamp.br/pub/docs/ea871/ARM/ARM7TDMITechnicalManual.pdf
[8]LylePittroff.Tutorial:TheRoleofJTAGinsystemdebug&testthroughouttheembeddedsystemdevelopment
lifecycle
http://www.embedded.com/design/prototypinganddevelopment/4008137/TutorialTheRoleofJTAGinsystemdebug
testthroughouttheembeddedsystemdevelopmentlifecycle
[9]JoeLemieux.IntroductiontoARMthumb
http://www.embedded.com/electronicsblogs/beginnerscorner/4024632/IntroductiontoARMthumb
[10]AshishKumarandPushekMadaan.Howtogenerateapreciseclocksource?
http://www.edn.com/design/sensors/4406691/OscillatorsHowtogenerateapreciseclocksource
[11]AndrL.Macedo,GuilhermeBeyerTheVinciusGeraldoFelix.Conjuntosdeinstruesde16bitspara
processadoresde32bits.
http://www.ic.unicamp.br/~rodolfo/Cursos/mc722/2s2004/g15compressaotexto.pdf