Che cosa è la migliore risorsa per imparare il linguaggio Assembly per microcontrollore PIC del [chiuso]

StackOverflow https://stackoverflow.com/questions/1473454

Domanda

Ho intenzione di iniziare a lavorare su un progetto in cui ho bisogno di avere una buona comprensione del linguaggio Assembly per il microcontrollore PIC.Io sono intimamente familiare con C/C++, quindi so come codice per la maggior parte, e ho fatto molti progetti per il PIC già modo di interpretare l'architettura, ma hanno fatto tutti i miei programmazione in "C".

C'è un buon libro o un sito che fa un buon lavoro spiegando che tutta l'Assemblea comandi media e come fare i compiti piuttosto semplici (lampeggio LED, matematica di base, ecc...) per il PIc?

Edit:Lo scopo principale di questo post è la richiesta di risorse per l'apprendimento dell'Assemblea, non discutere i meriti del C vs Assemblea del PIC, o se la FOTO è di una 'buona' microcontrollore per l'uso.Sto usando un PIC18 microcontrollore se questo fa alcuna differenza.

È stato utile?

Soluzione

Vorrei provare questo: Pic Tutorial

Altri suggerimenti

C'è molto di più che una FOTO di architettura, con significativamente differenti insiemi di istruzioni.Microchip non hanno la consistenza architettonica di Atmel AVR, per esempio.Quindi, è necessario specificare che cosa si sta utilizzando - i pic12, 16, 24, 32, per esempio.

Quindi prima di tutto vorrei suggerire di evitare PIC in assembler, sulla base del fatto che ciò che si impara a dire i pic12, che potrebbero non essere applicabili a un PIC24.In secondo luogo vorrei evitare di usare un PIC a tutti, se possibilmente come sviluppatore software - anche se ammetto ci sono altre considerazioni da fare, e si può avere altra scelta.

Quello che si può avere una scelta non utilizza assembler.Mentre l'estremità inferiore Foto non sono forse più adatto per la generazione di codice C, che è il compilatore scrittore problema;è ancora più conveniente in termini di tempo di sviluppo di utilizzare il C, dove possibile.D'altra parte per i prodotti ad alto volume, se è possibile inserire il codice in una parte più piccola utilizzando assembler, che può essere un fattore.Decidere è necessario assemblatore prima di aver testato una soluzione C è spesso un 'prematura ottimizzazione'.Anche se l'implementazione C non riesce dimensioni o vincoli di tempo, si può semplicemente chiamare un prototipo, e ricodificare per rispettare i vincoli.Che potrebbe essere ancora più veloce di partenza assemblatore codifica da zero e alle prese con design e set di istruzioni allo stesso tempo.Dire il tuo capo ti prototipo in C, poi quando soddisfa i requisiti, nessuno vuole sprecare soldi ri-codifica è sone non portatile, non gestibile codice assembler.

Infine per rispondere alla tua domanda, se c'è bisogno di ottenere il lavoro fatto rapidamente e in modo efficiente, l'uso di Microchip esempi e app-note per quanto possibile, e familiarizzare con il set di istruzioni del produttore del set di istruzioni di riferimento.Il set di istruzioni per la fascia bassa di parti non è di grandi dimensioni.Per giorno per giorno il lavoro che mi piace utilizzare un set di Istruzioni scheda di riferimento" come un aide-mémoire - riassume tutti i dati essenziali di ogni istruzione, di solito in un paio di pagine - stampa bifacciale e laminato è!;).Qui è un PIC16 esempio

Potrebbe essere una risposta piuttosto tardi, ma si potrebbe trarre beneficio da questo corso di laboratorio scritto in primo luogo per l'apprendimento Assemblea PIC attraverso le applicazioni.

Check: http://embedded-ju.ucoz.com/

Controllare la scheda esperimenti, comprende:

Experiment 0 - (Introduzione al MPLAB)

Esperimento 1 - (Introduzione agli assiemi PIC Instruction Set)

Esperimento 2 - (Altro su set di istruzioni e tecniche di programmazione modulari)

Esperimento 3 - (System Analysis di base e Design)
   3.1. Guida alla Hardware I

Esperimento 4 - (LCD - HD44780)

Esperimento 5 - (tastiera)

Esperimento 6 - (Utilizzo di HI-TECH C Compiler in MPLAB)    6.1. PIC Programmazione con Guida ICD2.

Experiment 7 - (Timer (Timer0 e Timer2))

Esperimento 8 - (USART)

Esperimento 9 - (Software PWM & A / D)


Si basa sulla serie PIC 16, in particolare, 16F84A, 16F877A e 16F917 .. gli esempi sono completamente commentato, e gli esperimenti completamente spiegato.

Sono un credente nella scrittura di un disassembler. Inizia con un programma molto semplice uno o due riga che carica un registro con forse una costante (devo leggere un tutorial o qualcosa da imparare questo passo). Assemblarlo. Salvare il binario in un formato si è in grado o disposti a scrivere un programma per leggere (intel hex forse, o elfo se supportano quello).

Scrivere un programma per leggere il file binario ed estrarre il programma poi prendere quei byte e scrivere un disassembler (anche se il venditore ha un disassembler si dovrebbe comunque scriverne uno).

Ora inizia il processo di iterazione, imparare una nuova istruzione o di un nuovo modo di utilizzare tale istruzione, un'istruzione alla volta. Scrivere il codice di smontare che l'istruzione o l'opzione. Prova a scrivere assembler per manipolare ciascuno dei bit nell'istruzione.

Con il tempo si ottiene attraverso il set di istruzioni saprete il set di istruzioni meglio di maggior parte delle persone che lo utilizzano ogni giorno, si sa come scrivere assembler per ciascuna delle opzioni per ciascuno dei codici operativi, si può anche imparare perché questa istruzione può indirizzare solo N byte dalla sua posizione e gli altri possono accedere a qualsiasi cosa, o che l'istruzione può usare solo un po 'N immediato e altri possono utilizzare qualsiasi valore. Questo genere di cose.

Ho usato questo processo molte volte e imparato molte set di istruzioni, YMMV. Dopo la prima coppia-tre il processo di cui sopra può solo prendere un pomeriggio per completare.

EDIT:

L'obiettivo è l'educazione non il prossimo grande progetto sourceforge. L'uscita può essere brutto o incompleti come ti piace sei l'unica intenzione di leggerlo.

Nota: Un disassembler generico per set di istruzioni di lunghezza variabile può essere un po 'difficile, non si vuole smontare linearmente il binario in quel caso si vuole seguire tutti i percorsi di esecuzione. Vorrei evitare di esso. Prendendo semplici programmi che eseguono alquanto linearmente montaggio smontaggio allora non è difficile anche su un set di istruzioni di lunghezza variabile. Si può imparare un po 'su un set di istruzioni smontando ed esaminando l'output di un compilatore C (o altro linguaggio di alto livello), se il compilatore non dispone di un'opzione di uscita assembler o non dispone di un disassemblatore non si può ottenere sfruttare questo (a meno che sia un set di istruzioni lunghezza fissa).

Si noti inoltre, una volta che si impara assembler per un processore, il secondo è molto più facile, e così via. Le cose che avete bisogno di imparare da uno all'altro diventano spesso quanto grande può essere questo salto, quali sono le norme in materia di immediates, indiretti affrontare, praticamente tutte le cose che sono direttamente legati ad esaminare i codici operativi. Si può imparare senza guardare i codici operativi, ma si deve fare affidamento sui messaggi di errore di documentazione o assembler essere di alta qualità.

Il PICList:. http://piclist.com/

In particolare,

  • Il "Principianti lista di controllo per microcontrollori PIC" ha molti buoni consigli.
  • Mike McLaren PIC18F set di istruzioni Sommario in HTML e < a href = "http://www.piclist.com/images/piclist/18Fsum.pdf" rel = "nofollow noreferrer"> PDF ha un riassunto di una pagina di tutte le istruzioni di montaggio in lingua del PIC18F "core a 16 bit".
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top