Professional Documents
Culture Documents
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