You are on page 1of 15

Module1

Terminology/CheatSheet

Thisdocumentisforinformationpurposesonly.Thedocumentdoesnotprovidetechnical,
medicalorlegaladvice.Viewingthisdocument,receiptofinformationcontainedonthis
document,orthetransmissionofinformationfromortothisdocumentdoesnotconstitutean
attorneyclientoranyotherrelationship

Terminology/CheatSheet

TableofContents

ProjectDescription

ProjectDifficulty

PartsList

Terminology(Beginner)

Acronyms(DragonBoard410c)
....

Acronyms(General)
..

FrequentTerminology
...

Concepts(Beginner)

HighandLowLevelProgramming
.....

ObjectOrientedProgramming
.......

CProgramming(Systems/Applications)
...

Root/Superuser
..

10

LevelsofAbstraction
.

11

SupplementalMaterial
(Beginner)

UNIX
........

12

MSDOS
......

13

DragonBoard410c
.

13

References

092015REVA

14

Terminology/CheatSheet

Terminology/CheatSheet

Thisdocumentwillcovermostofthebasicinformationthatwillbecoveredorusedinthe
followingmodules.Itwillhelptohaveknowledgeofinformationinthisdocumentbecauseitwill
beusefullateronhopefullyclearingupanconfusionyoumayhaveinthefuture.Youmayalso
usethisdocumentasareferencesheetyoucanuseincaseyouhaveforgottensomethingthat
ismentionedinafuturemodule.

Name
:Terminology/CheatSheet

ProjectDescription
:Studentswillberequiredtowatchallvideosanddosomeextraresearch
ontheterminologyandconceptspresentedinthisdocument.Beginnerstudentswhoare
unfamiliarwithmanyoftheacronymsusedubiquitouslyinthetechworldanddonothavea
stronggraspovertheconceptsofdifferentprogramminglanguagesshouldwatchallthelessons
forthisvideo.

ProjectDifficulty
:
EstimatedTime
:3hours
HWDifficulty
:1/10
SWDifficulty
:1/10

NeededMaterials
:SeeBillofMaterials

Note
:

Ensurethe
DragonBoard410c
isconnectedtoadisplay
Ensurethecorrectpowersourceisconnectedtothedevice(DC12V,2A)
WARNING
:Exceedingtherecommendedpowercoulddamagethedevice
EnsurethedevicehasUSBdebuggingenabled(Androidusersonly)
Ensurethe
DragonBoard410c
isconnectedtoacomputer

092015REVA

Terminology/CheatSheet

PartsList
:
a.
b.
c.
d.
e.

DragonBoard410c
HDMItoHDMIorHDMItoDSIcable
Monitor
KeyboardwithUSBcapability
MousewithUSBcapability

092015REVA

Terminology/CheatSheet

1Terminology(Beginner)

Thissectionwillcovermostoftheacronymsandtermsthatwillappearinlatermodules.

1.1Acronyms(DragonBoard410c)

HereareafewlistsofacronymsrelatingtoyourDragonBoard410calongwithashort
description:

Pins
allowsboardtoworldinteractions

GPIO
GeneralPurposeInput/Output
Nospecificpurposeuptotheuser.Sends/receivesdigital(1/0oron/off)
signals.[Wewillbeusingthispinformostofourpurposesthroughoutthe
seriesofcourses.Wewillnotbeusingtheotherones,however,theyarevery
powerfulpinsandonemayusethemtodevelopmoreadvancedprojects.]vs[
Thesewillbetheonlypinsusedinthis(andlater)courses.However,theother
pinsarestillveryusefulandyoumayusethemformoreadvancedprojects.]
MPP
MultiPurposePins
LikeGPIOs,slowerbutcansend/receiveawiderrangeofsignals(analog)
I2C
InterIntegratedCircuit
Allowsforcommunicationbetweencomponentswithintheboard
UART
UniversalAsynchronousReceiver/Transmitter
Usedforserial(bitbybit)andparallel(allatonce)communication
SPI
SerialPeripheralInterface
Usedforshortdistanceserialcommunication
PCM
PulseCodeModulation
Usedtodigitallyrepresentananalogsignal

Ports
usedtoattachperipheralstotheboard

HDMI
HighDefinitionMultimediaInterface
OneHDMIport,allowsyoutoconnecttheboardtoamonitor/screen
USB
UniversalSerialBus
TwoUSBports,normallyusedtoattachakeyboardandmousetotheboard
MicroUSB
MicroUniversalSerialBus
OneMicroUSBport,usedmainlyfortheAndroidDebugBridge(coveredlater)
DC
DirectCurrent(PowerAdapter)
Usedtosufficientlypowertheboard(12V)

092015REVA

Terminology/CheatSheet

SD
SecureDigital
KnownasanSDcard.Thereisaslotforoneontheboard

Components
hardware/software

eMMC
EmbeddedMultimediaCard
Flashmemoryontheboard(embedded)andnotanexternalstorage
RAM

RandomAccessMemory
Volatilememory(forquickread/writeaccess)
WiFi
Notanactualacronym
BrandingtermthatbeatoutIEEE802.11standard
GPS
GlobalPositioningSystem
Usedtodeterminelocation
ARM

AdvancedRISCMachine
UsedtobeknownasAcornRISCMachines,thisisthekindofinstructionset
theDragonBoard410csprocessoruses
RISC

ReducedInstructionSetComputing
CPUdesignusedtoimproveperformancebyusingsimplifiedinstructions
(usingfewercyclesperinstruction)

1.2Acronyms(General)

Thefollowinglistcontainsacronymsthatnamessomethingthatwillbeusedinalatermodule:

IoTInternetofThings
Thenewage,anenvironmentinwhichobjects,humans,andevenanimalscan
communicateandsendinformationwithouthumantohumanor
humantocomputerinteraction.
OSOperatingSystem
Softwarethatcontrolsallofthecomputerssoftware/hardwareoperations.
IDEIntegratedDevelopmentEnvironment
Softwareapplicationwhichprovidescomprehensivetoolsforprogrammersfor
softwaredevelopment.
SDKSoftwareDevelopmentKit
Softwaredevelopingtoolsusedtocreateapplicationsforacertain
software/hardwareplatform(i.e.Android)
NDKNativeDevelopmentKit
ToolusedtowriteprogramsinC/C++forAndroiddevices
AVDAndroidVirtualDevice
ToolwhichallowsonetoemulateanactualAndroiddevicevirtuallyonones
computer.
ADBAndroidDebugBridge

092015REVA

Terminology/CheatSheet

CommandlinetoolwhichletsonecommunicatewithaconnectedAndroiddevice
oranemulatedvirtualdevice
APKAndroidApplicationPackage
Fileformatwhichisusedfordistributingandinstallingapplicationsoftwareon
Android
APIApplicationProgrammingInterface
Setofroutines,protocolsandtoolsforbuildingsoftwareapplications
SoCSystemonChip
Explainedinfurtherdetailinthesupplementalsfurtherinthedocument.
SoMSystemonModule
Explainedinfurtherdetailinthesupplementalsfurtherinthedocument.

1.3FrequentTerminology

Hereareasometermsthatwillbeusedlaterthatyoumayormaynotbefamiliarwith.Thisisto
alsoremoveanyambiguitywhenusingtheterms(i.e.BoardistheDragonBoard410c,nota
skateboardoraboardgame.)

Board
ReferstotheactualDragonBoard410c
Boot
startingyourboard(Pluggingitinandgettingtostartscreen).
Terminal
ashell/commandline.TerminalonUnixsystems.CommandPrompton
Windowssystems
AndroidStudio
anIDEfordevelopingAndroidapps
DipSwitches
bootswitchesonbackofboard
Script
anexecutablefile(automatesaprocess)
Fastboot
amethodtoinstallanOSusingaUSBandacomputer
Flashing
overwritingexistingOSorfirmware

092015REVA

Terminology/CheatSheet

2Concepts(Beginner)

Theconceptsthatarecoveredinthissectioncontainsinformationregardingsometopicsthat
mayimproveyourunderstandingoffuturemodulesandevenyourownpersonalprojects.

2.1HighandLowLevelProgramming

HighLevelProgramming(Java,Python, LowLevelProgramming(Assembly,
etc)
MIPS,etc)
Simplersyntax,easiertoread
UseofbracketsinJava.Useofindentation
insteadofbracketsinPython
Onelineofarithmeticcodecancarrymany
processes.

Extensivesyntax.Oftenmorelinesofcode
Numerouslinesofcode.Separatelineof
codeforeverysingleoperation.

Manyabstractions(i.e.ObjectOriented)

ExampleofAbstraction:
Icanhaveananimal
class.Adogwouldderivefromananimalclass,as
wouldacat.Icanaskeachanimalforitsage,size,
etc.Thisinfoisidentifiedascommonamongboth
animals.

Icandealwithanimalsusingcommonmethods
suchasspeak,eat,etc.Icanaddanewanimal
latersuchasaparrotandmostofmycodewould
stillremainunawareofthisaddition.The
implementationofparrotworriesonlyaboutparrot
particularities,whileIcancontinuetoderivethe
commonalitiesfromanimalclass.

FewerAbstractions

Thescenarioexplainedontherightwouldnot
besoeasilypossibleinLowLevel
Programming.Eachspecificanimalwouldneed
itsownimplementationfromtoptobottomand
cannotjustderivefromoneabstractparent
class.

AutomatedProcesses
Thisreferstoanumberoffunctionalities
thattheprogramminglanguagecarriesout
withoutdirectinputfromtheprogrammer.
Agoodexampleismemorymanagement.
InJava,agarbagecollectorclearsunused
memorysuchasuninitializedvariables.

LackofAutomatedProcesses
Eachandeverytaskmustbespecified
bytheprogrammer.Notaskis
automaticallyassumedandcarriedout.
Agoodexampleis,eachandevery
variablemustbemanagedviathe
registers.Onemaynotjustleave
memoryleaksoritcancausedangerous
securityhazards.

092015REVA

Terminology/CheatSheet

NotasClosetoHardware
ClosetoHardware
Inhighlevelprogramming,theprogram
LowLevelProgrammingdealsdirectly
getsconvertedtolowlevelprogramand
witharithmeticandlogicoperators,and
thencarriesoutthenecessaryfunctions.
registers.Therefore,isconsidered
Butdoesnotgivetheprogrammerasmuch
closertothehardware.
controlovereachindividualoperation,and
thusthehardware,aslowlevel
programming.

Amoredetailedexplanationcanbefoundonthefollowingwebsite:
http://www.codecommit.com/blog/java/defininghighmidandlowlevellanguages

2.2ObjectOrientedProgramming

ObjectOrientedProgrammingisoneaspectofhighlevelprogramming.Eachclassistreatedas
itsownobject.

Advantages
CodeReuse/Recycling
Youcancreateoneparentclasswithcommonalitiesthatcanbeappliedacross
variousobjects.AgoodexampleofthisisgiveninthetableaboveintheHigh
andLowLevelProgrammingsection.

Encapsulation
Theideaofhidinginformation.Soavariable/methodcanbesenttoprivateby
defaultandcanbegivenexternalpermissioninacontrolledway.Reducescode
interferences.

DesignBenefits
SincemuchofOOPisbasedaroundinheritance,thereisanextensive/longer
planningphase.Thisalsomeansthattherearelessflawsintheendproductand
anyflawsthatdooccurcanbeeasilyfixedwithouthavingtoredotheentire
program.

Disadvantages
Size
Greaternumberofprogramstocompileandexecuteatask

Speed
Thisincreaseinsizealsoslowsdowntheprogram.

092015REVA

Terminology/CheatSheet

2.3CProgramming(Systems/Applications)

Advantages
Portable
Portabilityreferstohowyoucanwritethecodeononemachineandexpectitto
runexactlythesameonanothermachine.Thismeansthatyoudonthaveto
rewritecodeondifferentmachinestoperformthesametask.(i.e.ifyouhaveto
dealwithregisters,differentmachinesmaydealwithregistersdifferentlymeaning
youwouldhavetoalteryourcodetomakeitwork).

Extensivelibrariesforuse
Librariesrefertoalreadyimplementedfunctions(usuallytendstobemore
generalratherthanspecificuse)thatyoucanimport/usetohelpyourown
program/codedosomething.(i.e.importingprintfunctions)

Systemsprogramming(ProcedureOriented)
Veryconduciveforprogrammingonsystemsandhardware.SinceCisin
betweenlowandhighlevelprogramming,itgivesyoumorecontroloveryour
memoryandhardwarelikealowlevellanguagewhilestillmaintainingmanyof
thecomponentsofahighlevellanguage.

Midlevel
Levelreferstoalevelofprogramming.Thiswascoveredmoreindepthearlier
on.MidlevelisagoodplacetoputCProgrammingbecauseithaselementsof
highandlowlevellanguages.(i.e.automatedregisterhandlingbutnoautomated
garbagecollection/memorycleanup).

Disadvantages
NoObjectOrientedProgramming
Doesntallowobjectorientedprogrammingfeaturessuchasinheritance.Youcan
emulateinheritancebyusingnestedstructsbutstrictlyspeaking,Cdoesnot
haveinheritance.C++,theupgradedversionofC,doeshowever,haveOOP
capabilities.

Veryloosetypechecking
ThisreferstohowChandlesitsdata.Everythingisstoredasbitsandusedas
bits.Soifyoustoreavariableasacharacter,itwillmakethecharactertype
pieceofdatawiththebitvaluesofwhateveryouveassignedthatvariable.Butif
youpassthatcharacterasaninputtosomethingthatrequiredanint,Cwilluse
thebitvalueofthecharacterandtreatitasaninteger.Thiscouldresultinodd
outputfromyourfunctions.

092015REVA

Terminology/CheatSheet

2.4Root/Superuser

Therewillbetimesyoursystemwilltellyouthatsomethingcannotbedone(warnings/safety
precautionsonyourmachine).Thisismostlikelybecausethemachineisstoppingyoufrom
doingsomethingthatshouldnotbedoingnormally.However,therewillbetimeswhenyouwant
tochangesomething(i.epermissionsofafile)soyoucandosomekindoftask.

Tobeabletoeditfilesyounormallycouldnot,orevenaccess/readcertainfiles,youwillneedto
beasuperuser(alsocommonlyknownasarootuser).MaybeyouveheardofarootedAndroid
devicethisbasicallyreferstohowtheuserhasbecomearootuserontheAndroiddeviceand
isthereforeabletomodifyfilesontheirdevicethatnormallywouldbeuntouchable.Tobecome
asuperuser,youwouldexecutethecommand
su
(sometimesyouwillneedtouse
sudosu
),
yoursystemwillaskforyourpassword(ifyouvesetone).Afterthisstep,yourenowa
superuser.Prettysimple!Thiswillmakeitsoeverythingyoudofromnowonwillbeexecutedas
asuperuser.

Beverycarefulwhenyoureinthismode!!!Youarebasicallytellingyoursystem,Listen,Iknow
whatIamdoingandyoucannottellmeotherwise.Thereforeyoucoulddosomethingthat
wouldruinyourOS,andthusmaybeevenlosinglotsofvaluabledata.Withthatinmind,aslong
asyoudosomeresearchbeforehand,youshouldnotworrytoomuchaboutruiningyour
system.Toquitbeingasuperuser,issuethecommand
exit
.

Note:
Ifyouonlywantedtomakeasmallchangetojustonefile,orexecuteacommandthat
onlyasuperusercan,youcanuse
sudo
infrontofyourcommand.Thiswillexecutewhatever
comesafterthesudo(superuserdo)withouthavingtoenterthesuperusermode.

092015REVA

10

Terminology/CheatSheet

2.5LevelsofAbstraction

Theabovechartisaoutlineofallthelevelsofabstractionfromthehardwaretothesoftware.
Thehighestlevelsofabstractionareatthetopwithhighlevelprogramming.Thenasyoucome
downthechart,youseefewerandfewerabstraction.Thelowestlevelbeingbinarycode.Which
issimplyavery,verylongstringofjust1sand0sthatthehardware(specificallythetransistors
inthehardware)willinterpretandcarryoutphysicalfunctions.Atransistorwillreada1asturn
onandthetransistorwillturnon,and0willbereadasturnoffandthetransistorwillturnoff.
Billionsoftransistorsworktogetherinacomputerinthisfashiontocarryoutallthethingsyou
doonacomputer.

092015REVA

11

Terminology/CheatSheet

3SupplementalMaterial(Beginner)

Inthissection,thisdocumentwillcoversomesupplementalmaterialthatmaybehelpfulforthe
future.Theinformationheremayalsobeusefulforfutureprojectsaswell!

3.1UNIX

OnUNIXmachines,thereisaveryusefultoolknownastheTerminal(orcommandline).This
allowstheusertointeractwiththeirsystemmoreclosely(i.e.modifysystemfiles).

Somecommandsorkeywordsthatwillbeusefulforlater:
ls
liststhecontentsofthecurrentdirectory
cd
changesdirectorymovetoadifferentplaceonyoursystem
echo
prints/callssomethingouttotheterminal
cat
outputscontentsofafiletosomewhereelse(terminaldefault)
export
usedtocreateapathvariable
sudo
executeacommandasasuperuser
(sudo)su
entersuperusermode(puttingsudoinfrontofeverything)
chmod
changesfilepermissions(read,write,execute)
exit/quit
exit/quitcurrentmode(exitrootorquitsterminal)
~
homedirectory
.
currentdirectory
..
parentdirectory
./
executesfiles

Someothercommandsthatmightbeusefultoyouforotherprojects:
mkdir
Createanewfolder
mv
moveafiletoanotherlocation
cp
copyafiletoanotherlocation
pwd
printsoutthecurrent(working)directoryyouarein
rm
removeafile
rmdir
removesanemptydirectory(willnotallowyoutodeleteafolderwithitemsinit)
rmdirr
removesadirectory(folder)alongwithitscontents
clear
clearstheterminal
man
displaysamanualofacommand(i.e.manlswillexplainhowlsisused/works,
mayalsouse
info
instead)
!!
repeatacommand(canalsousearrowkeystocyclethroughpreviouscommands)

Ifyouveeverwantedtocancelacommandorquitsomethingtheterminalisrunning,hit
control+cwhileintheterminalwindow(bothLinux/Mac).

AllUnixterminalcommandscanbefoundonthefollowingwebsite:
http://ss64.com/bash/

092015REVA

12

Terminology/CheatSheet

3.2MSDOS

OncomputersrunningWindows,thereisabuiltcommandlinecalledWindowsCommand
PromptorcommonlyreferredtoasMSDOScommandprompt.Itissimilartotheterminalon
Linuxsystems,butsomeofthecommandsaredifferent.

Somecommandsorkeywordsthatwillbeusefulforlater:
dir
liststhecontentsofthecurrentdirectory(equivalentoflsonUnix)
cls
clearsthecommandscreen.(equivalenttoclearonUnix)
copy
copiesoneormorefilestoadestinationyouspecify
echo
prints/callssomethingouttotheterminal
del
deletesafile
undelete
restoreadeletedfile
print
printthecontentsofafile.
mkdir
Makeanewfolder

AllMSDOScommandscanbefoundonthefollowingwebsite:
http://ss64.com/nt/

3.3DragonBoard410c

SoC
Systemonachipisanintegratedcircuitchipwithallthecomponentsofacomputeron
asinglechip.ItusuallyrunsafullyoperationalOSonit.AverygoodexampleofaSoCisthe
QualcommAPQ8016chipontheDragonBoard410c.

Microcontroller
Asmallcomputeronasingleintegratedcircuitchip.Containsprocessorcode
andprogrammableI/Operipherals.However,itdoesnothaveaOSlikeanSoC.Agood
exampleofamicrocontrollerisanArduino.

SoM
SystemonmoduleisabareboneSoCwithouttheperipherals.InbetweenanSoCand
amicrocontrollerandneedsDevelopmentKittoprogramandpushinformationontoit.

EmbeddedSystems
Overarchingtermthatencompassesalltheaforementionedterms.A
combinationofsoftwareandhardwarethatisdesignedforaparticularfunctionality.

092015REVA

13

Terminology/CheatSheet

References

AllMSDOScommandscanbefoundonthefollowingwebsite:
http://ss64.com/nt/

AllUnixterminalcommandscanbefoundonthefollowingwebsite:
http://ss64.com/bash/

SoC
https://en.wikipedia.org/wiki/System_on_a_chip

Microcontroller
https://en.wikipedia.org/wiki/Microcontroller

SoM
https://en.wikipedia.org/wiki/System_on_module

EmbeddedSystems
https://en.wikipedia.org/wiki/Embedded_system

High/LowLevelProgramming
http://www.codecommit.com/blog/java/defininghighmidandlowlevellanguages

RAM
https://en.wikipedia.org/wiki/Randomaccess_memory

ARM
https://en.wikipedia.org/wiki/ARM_architecture

RISC
https://en.wikipedia.org/wiki/Reduced_instruction_set_computing

IDE
https://en.wikipedia.org/wiki/Integrated_development_environment

DragonBoard410cAndroidUserGuide

DragonBoard410cLinuxUserGuide

092015REVA

14