handlesbluestack

bluestack  时间:2021-02-20  阅读:()
UsingtheTASKINGSoftwarePlatformforARMMA101-869(v1.
3)July29,2015Copyright2015AltiumBV.
Allrightsreserved.
Youarepermittedtoprintthisdocumentprovidedthat(1)theuseofsuchisforpersonaluseonlyandwillnotbecopiedorpostedonanynetworkcomputerorbroadcastinanymedia,and(2)nomodificationsofthedocumentismade.
Unauthorizedduplication,inwholeorpart,ofthisdocumentbyanymeans,mechanicalorelectronic,includingtranslationintoanotherlanguage,exceptforbriefexcerptsinpublishedreviews,isprohibitedwithouttheexpresswrittenpermissionofAltiumBV.
Unauthorizedduplicationofthisworkmayalsobeprohibitedbylocalstatute.
Violatorsmaybesubjecttobothcriminalandcivilpenalties,includingfinesand/orimprisonment.
Altium,TASKING,andtheirrespectivelogosaretrademarksorregisteredtrademarksofAltiumLimitedoritssubsidiaries.
Allotherregisteredorunregisteredtrademarksreferencedhereinarethepropertyoftheirrespectiveownersandnotrademarkrightstothesameareclaimed.
TableofContents1.
Introduction12.
OrganizationoftheSoftwarePlatformRepositories32.
1.
DeviceStacks32.
1.
1.
Peripherals42.
1.
2.
Drivers42.
1.
3.
StackServices52.
1.
4.
Adaptors52.
2.
SoftwareServices63.
GettingStartedwiththeSoftwarePlatformBuilder73.
1.
CreatingaSoftwarePlatformDocument73.
2.
WorkingwithDeviceStacks83.
3.
ConfiguringtheSoftwarePlatformPlug-ins123.
4.
GeneratingandUsingtheSourceCode143.
5.
UsingtheSampleProjects163.
6.
APIReference183.
7.
SoftwarePlatformBuilderPreferences184.
TutorialCreatingaFileSystemonaRAMDisk214.
1.
CreateaProject214.
2.
AddaSoftwarePlatformDocument224.
3.
AddtheServicesandDeviceStacks234.
4.
ConfiguretheSoftwarePlatformPlug-ins264.
5.
GeneratetheSourceCode274.
6.
WriteandBuildtheApplication284.
7.
DebugtheApplication315.
TutorialUsingaLibraryWrapper335.
1.
CreateaProject335.
2.
AddaSoftwarePlatformDocument345.
3.
AddtheServicesandDeviceStacks355.
4.
ConfiguretheSoftwarePlatformPlug-ins375.
5.
GeneratetheSourceCode385.
6.
ConfigurethePins395.
7.
WriteandBuildtheApplication405.
8.
ConnecttheBoard415.
9.
DebugtheApplication426.
TutorialCreatingaLocalRepository456.
1.
CreateaLocalRepositoryProject456.
2.
AddaSoftwarePlatformPlug-in456.
3.
ModifytheSoftwarePlatformPlug-in466.
4.
UsetheLocalRepository477.
ContentoftheDefaultARMRepositories517.
1.
TASKINGPOSIXRepository517.
2.
STM32Repository527.
3.
EFM32Repository537.
4.
GenericRepository538.
Glossary59iiiivUsingtheTASKINGSoftwarePlatformforARMChapter1.
IntroductionWithTASKINGSoftwarePlatformyoucanquicklycreatefull-featuredapplications.
ASoftwarePlatformismadeupofsoftwareblocks,piecesoffunctionalitythatyoucanuseinyourapplication,likeRTOSfacilities,peripheralaccessorsoftwareprotocols.
TheexactcontentsofaSoftwarePlatformdependontheneedofyourapplication.
TheSoftwarePlatformBuilderisusedtomanageyourSoftwarePlatform.
Itisbothagraphicaleditorandacodegenerator.
CollectionsofsoftwaremodulesaredeliveredasSoftwarePlatformrepositories.
ThefollowingfigureshowstheprocesstocreateyourownSoftwarePlatform:ASoftwarePlatformrepositorymaycontainanykindofsoftware,buttypicalmodulesincludeinterruptservices,timers,peripherals(hardwarewrappers),drivers,kernelservices(suchasPOSIXmultithreading),deviceI/O,filesystem(FatFs),networking(TCP/IP),graphicaluserinterface,etc.
Themainreasonsforhavingsoftwaremodulesare:Integration.
Modulesdonotliveisolated.
Quitethecontrary,theyneedtorelateandinteractwithothermodules.
Forinstance,theyoftendefineinterfaceswhichareimplementedbyothermodules.
Softwarereuse.
Softwarereusemeanseffectivelytobecapableofencapsulatingalltheinformationofacomponent(hardwareand/orsoftware)inaconsistentmanner.
Oncethisinformationismade1available,higherabstractionlayerscanuseittocustomizeorconfigurethesystemafterlittle(ornone)userintervention.
Hidecomplexity.
Writingsoftwarefromscratchisatime-consumingactivity.
Towritesoftwarethataccessesorcontrolsaperipheral,youneedathoroughknowledgeofhowtheperipheralworks:whichregistersyouneed,whichdevicespecificcommandstouse,whichcommunicationprotocolstouse,andwhichinterruptstohandle.
ThemodulesoftheSoftwarePlatformrepositorytakecareofalltheselaboriouslowerlevelroutinesandinsteadprovideyouwithaneasytouseApplicationProgrammingInterface(API)foreachperipheralthatyourapplicationneedstocontrol.
Configurability.
Embeddedsystemsrequireveryprecise(compile-time)configurationmechanismstomanagetheirintrinsiccomplexity.
Atypicalmodulemayshowdifferentpossibleconfigurationsthathavedirectimpactonthefinalbehaviorofthesoftware.
Themainideabehindcompile-timeconfigurationsinembeddedsystemsistoremoveunnecessaryfunctionalityinordertoenhancememorycostsandreal-timeperformance.
Expandability.
Altium,butalsootherparties,canadaptthemodulesandcreatetheirownmodules.
ForinformationhowtousetheSoftwarePlatformBuilder,seeChapter3,GettingStartedwiththeSoftwarePlatformBuilder.
2UsingtheTASKINGSoftwarePlatformforARMChapter2.
OrganizationoftheSoftwarePlatformRepositoriesSoftwarePlatformrepositoriescancontainnumeroussoftwaremodulesthattakecareoflowerlevelsoftwareroutinesaswellasmodulesthatofferextrafunctionalitybyprovidingyouwithaconvenientAPI.
TheSoftwarePlatformconsistsofdevicestacksandsoftwareservices.
Thischapterdescribesbothpartsandhowtheyarerelated.
2.
1.
DeviceStacksDevicestacksareallaboutmakinghardwareperipheralsavailabletoapplicationcodethroughabstractandgenericsoftwareinterfaces.
Byplacingmoreorlessmodulesonastack,youcanchoosetheabstractionlevelyouwanttouseinyourapplication.
Thelowestlevelmodulesarespecificforaparticularhardwaredevice.
Ontopofthat,youcanstackhigherlevelmodulesthatprovidemoregenericfunctionalitytoaccessthedevice.
Forexample,atthehigher,abstractlevel,youcouldchoosetouseamoduletoaccessafilesysteminyourapplication.
Atthelowerlevelsyoustillcanselectmodulestodecidewhichspecificstoragedeviceyouwanttoaccess(aharddrive,SDcard,RAMdrive,.
.
.
)Thus,thelowerlevelmodulesaremorespecificforaparticularperipheralwhilethehigherlevelmodulesarelesshardwarespecificandcanevenbeusedincombinationwithmultipleperipheraldevices.
YoucanusetheSoftwarePlatformBuildereditortobuilddevicestacks.
ExampleThefollowingfigurecontainsaHTTPdevicestackandaGUIdevicestack.
3Eachcoloredstackitemrepresentsasoftwaremodule.
InthisexampletheHTTPstackconsistsoffivemodules,foreachabstractionlevelone.
TheGUIServicesrequiresGraphicsServicesandPointerServices.
Ingeneral,yourapplicationinterfacesonlytothehighestlevelmodules.
Devicestacksmaybecomposedofthefollowingtypesofplug-ins:peripherals,drivers,stackservicesandadaptors.
2.
1.
1.
PeripheralsPeripherals(thegreenstackitems)arethelowestlevelmodules.
Theyprovideinformationforthehigherlayersofthestacktoaccesstheperipherals.
Informationsuchasthebaseaddress,interruptassignmentandanysoftperipheralconfigurationisallstoredintheperipheral.
Peripheralmodulesaremeanttobeinstantiated.
Eachinstancethencorrespondstoonedeviceofthegivenkind.
Instancesofperipheralsdonotnormallyrequireotherinstances.
Inmostsituations,yourapplicationdoesnotaccesstheperipheralsdirectly,becausetheapplicationaccessesthemthroughthedriver'sinterfaceontopofit.
FormostperipheralsyouneedtousetheTASKINGPinMappertoconfiguretheconnectionsbetweenperipheralsandportpins.
ForinformationabouttheTASKINGPinMapperseeUsingtheTASKINGPinMapperforARM.
2.
1.
2.
DriversDrivers(theyellowstackitems)providethenextlevelofabstraction.
Theyprovidelow-levelaccesstospecifichardwareeitherviaaperipheralorviaanotherdriver.
Thedifferencebetweenadriverandaperipheraliswelldefined.
Theperipheralonlydefinesbasicinformationaboutthehardwarebutprovidesnofurtherfunctionality.
Thisbasicinformationcanbeusedbyadriverwhichyoucanplaceontopoftheperipheral.
Drivermodulesaremeanttobeinstantiated.
Eachinstancethencorrespondstoonedeviceofthegivenkind.
Adriverinstancerequiresoneinstanceofthecorrespondingperipheral.
Driversarehardwarespecificandsoaretheinterfacestheyoffer.
Hence,ifyourapplicationcontainscodethataccessesadriver'sAPI,yourapplicationwillbehardwaredependent.
Driversstilloperateatalowabstractionlevel,andusingadeviceatthedriverlevelrequiresknowledgeofthatparticulardriver'sinterface.
4UsingtheTASKINGSoftwarePlatformforARMSomedriversareavailableaslibrarywrappers.
Theyonlyofferaninitializationroutinewhichyoucancallfromanapplicationinordertoconfigurepins,clocksandregisters.
Afterthisinitializationyoucanusetheperipheraldriverlibrariesfromsiliconvendors.
2.
1.
3.
StackServicesStackservices(thebluestackitems)arethemostabstractlayersoffunctionality.
Stackservicesprovidestandardized,hardwareindependentaccesstodevices.
Stackservicesareinstantiatedandensureportabilityofyourapplication.
Forexample,ifyourunanapplicationwithagenericTCP/IPservice,theapplicationremainsthesameifyoureplaceEthernetwithPPPandserial.
AportableTCP/IPapplicationworksexactlythesame,whetherlinkedtoaUARToratoanEMACperipheral,sincetheSoftwarePlatformhandlesthelowerleveldetails.
2.
1.
4.
AdaptorsAdaptors(thegrayedoutstackitems)provideamechanismtolinkhigherlevelservicestohardwarespecificmodules.
Adaptorsdonothaveoptionsyoucanchange.
Bydefault,adaptorsarenotvisibleinthedevicestacks.
YoucanmakeadaptorsvisibleinthePreferencesdialog.
SeeSection3.
7,SoftwarePlatformBuilderPreferences.
5OrganizationoftheSoftwarePlatformRepositories2.
2.
SoftwareServicesSomeservicesarestaticandnotmeanttobeinstantiated.
Theyhaveno(direct)relationshipwithperipheralsorotherservices.
Theyfacilitatecommonfunctionality,likePOSIXmultithreadingsupport.
TheyareshowninyoureditorattheleftsideoftheDeviceStacks.
Thoseservicesmayalsobeaddedautomaticallyifrequiredbyotherservices.
6UsingtheTASKINGSoftwarePlatformforARMChapter3.
GettingStartedwiththeSoftwarePlatformBuilderTheSoftwarePlatformBuilderisthegraphicalinterfacetomanagetheplug-insoftheSoftwarePlatformrepositories.
TheSoftwarePlatformBuilderenablesyouto:addperipheralsbuilddevicestacksaddsoftwareservicesconfigureallsoftwareservicesandstackitemsgeneratecodeforyourSoftwarePlatform3.
1.
CreatingaSoftwarePlatformDocumentTousetheSoftwarePlatformBuilderyouneedaproject.
TheSoftwarePlatformBuilderbecomesavailablewhenyouaddaspecialSoftwarePlatformdocumenttoyourproject.
AddaSoftwarePlatformdocumenttoanexistingproject1.
Firstmakesureyouhaveanexistingproject.
ThisisexplainedintheGettingStartedmanualofthetoolset.
Inthisexampleweassumeyouhaveaprojectcalledmyproject.
2.
FromtheFilemenu,selectNewTASKINGSoftwarePlatformDocument.
TheNewSoftwarePlatformDocumentwizardappears.
3.
SelecttheProjectfolderfortheSoftwarePlatformdocument:typethenameofyourproject(myproject)orclicktheBrowsebuttontoselectaproject.
4.
IntheFilenamefield,enteranamefortheSoftwarePlatformdocument,forexamplemyproject.
swpxmiandclickFinish.
AnewSoftwarePlatformdocumentisaddedtotheprojectwithextension.
swpxmi.
TASKINGSoftwarePlatformBuildereditorDouble-clickontheSoftwarePlatformdocumenttoopenit.
Theeditorconsistsoftwosections:theSoftwareServicesandtheDeviceStacks.
7Thefollowingtoolbariconsareavailable:DescriptionActionIconGeneratesthesourcecodeandaddsittoyourproject.
GenerateCodeAddssoftwareservicesand/ordevicestacks.
AddImportsPinMappersettings.
IfyoualreadyhaveconfiguredperipheralsinthePinMapper,thesettingsaresynchronizedwiththeSoftwarePlatform.
SynchronizewithPinMapperoutputReloadstherepository.
Thiscanbenecessarywhenyouhaveupdatedtherepositoryorwhenyouchangedthecontentsofalocalrepository.
ReloadRepository3.
2.
WorkingwithDeviceStacksIntheDeviceStackssectionyoucanbuilddevicestacksbyaddingmodulesfromoneormoreSoftwarePlatformrepositories.
Tobuildadevicestack,youcanstartbottom-upbychoosingaperipheraloryoucanstarttop-downbychoosingahigh-levelstackservice.
Addasoftwareserviceordevicestack1.
FromtheSoftwarePlatformmenu,selectAdd.
.
.
orclick.
TheAddSoftwareServicesandDeviceStacksdialogappears.
Theleftsideshowsthestackservices,softwareservicesanddrivers.
Therightsideshowsallperipheralsfortheselecteddevice.
Youcanfilteronaspecificrepository.
Bydefaultallavailablerepositoriesarelisted.
8UsingtheTASKINGSoftwarePlatformforARM2.
(Optional)SelectaRepository.
3.
Selecttheservices,driversandperipheralsyouwantandclickOK.
ThenewdevicestacksandsoftwareservicesappearintheTASKINGSoftwarePlatformeditor.
Somesoftwareservicesappearautomaticallybecausetheyarerequiredbyotherservicesorstackitems.
Ifyoudonotseeanyperipheral,youprobablyselectedanunsupporteddeviceoragenericarchitecture.
9GettingStartedwiththeSoftwarePlatformBuilderGrowingstacksOnceyouhaveaddedoneormorestackitems,youcanuseGrowStackUporGrowStackDownfromthecontextmenutocompleteyourdevicestack.
TheGrowStackUpandGrowStackDownmenuitemsonlybecomeavailableifpossibilitiesexisttoextendthestackfromthepointoftheselectedstackitem.
Onceyouhavepartialdevicestacksonthedocument,youcanextendthemwithotherstackitemstogrowthemtotheabstractionlevelyouwishtouseinyourapplication.
ForaninterfacedescriptionofamoduleselectAPIReference.
Togrowastackup:1.
Right-clickonaplug-inoftheexistingstackandselectGrowStackUp.
TheGrowStackdialogappears.
Thedialogshowsallpossiblecombinationsofsub-stacksthatyoucanplaceontopoftheselectedmodule.
2.
Selectanymoduleinanyofthepossiblesub-stackstoextendtheselectedstackupwardsandclickOK.
Togrowastackdown:1.
Right-clickonaplug-inoftheexistingstackandselectGrowStackDown.
TheGrowStackdialogappears.
Thedialogshowsallpossiblecombinationsofsub-stacksthatyoucanplacebelowtheselectedmodule.
10UsingtheTASKINGSoftwarePlatformforARM2.
Selectanymoduleinanyofthepossiblesub-stackstoextendtheselectedstackdownwardsandclickOK.
NotethatwhenyouclickonaMissingRequirement,theGrowStackdialogappearsautomatically.
TheGrowStackdialogcontainstwotabs,onetoformanewstackandonetolinktwoexistingstacks.
Ifyourdocumentcontainspartialstackswhichpotentiallycanbecombinedintoasinglestack,itwillbevisibleintheLinktoExistingtab.
Youcanlinkthemtogethertoformacompletestack.
OtherwiseselecttheNewStackstab.
ExampleThefollowingfigureshowssomedevicestacks.
11GettingStartedwiththeSoftwarePlatformBuilderNotethatsomedrivers(ILI9320LCDModuleDriverinthisexample)donotrequireaperipheral,becausethedeviceisaccessedthroughthememorycontroller.
3.
3.
ConfiguringtheSoftwarePlatformPlug-insYoucanconfigureperipherals,drivers,stackservicesandsoftwareservices.
Stackitemscanhaveindividualoptionsand/orglobaloptions.
Individualoptionsareonlyvalidforaspecificstackitem,globaloptionsarevalidforallstackitemsofthesametype.
WhenyouclickonanitemintheSoftwarePlatformBuilder,configurationoptionsappearinthePropertiesview.
Forexample,whenyouclickHyperTextTransferProtocol,aviewsimilartothefollowingappears:Aplug-inoptionmayautomaticallysetotherplug-inoptionsandmayevenaddautomaticservices.
Forexample,inthiscasewhenyousetHTTPStotruethisaddstheMatrixSSL/TLSservicesautomatically.
12UsingtheTASKINGSoftwarePlatformforARMConnectingperipheralstopinsFormostperipheralsyouneedtospecifywhichpinsareused.
YoucandothiswiththeTASKINGPinMapper.
1.
AddaTASKINGPinMapperDocument(FileNewTASKINGPinMapperDocument)andconfigurethepinsasexplainedinUsingtheTASKINGPinMapperforARM.
Thisresultsinafilecalledmyproject.
pincfg.
2.
FromthePinMappermenu,selectGenerateCodeorclick.
ThePinMappersourcesaregeneratedandareaddedtoyourprojectinthefolderPinMapper.
3.
GobacktotheTASKINGSoftwarePlatformdocument.
4.
FromtheSoftwarePlatformmenu,selectSynchronizewithPinMapperOutputorclick.
TheSynchronizedialogappears.
13GettingStartedwiththeSoftwarePlatformBuilder5.
SelecttheperipheralsyouwanttoaddtoorremovefromtheSoftwarePlatformdocumentandclickOK.
TheSoftwarePlatformusestheoutputoftheTASKINGPinMappertoconfiguretheperipherals.
Forexample,clickontheSTM32F2XXI2Cperipheraltoshowitsproperties.
TheSoftwarePlatformusesthefunctionpincfg_i2c1_inittoconfiguretheSTM32F2XXI2Cperipheral.
ThisfunctionhasbeengeneratedbytheTASKINGPinMapper.
3.
4.
GeneratingandUsingtheSourceCodeWhenyouhaveadded,configuredand/orupdatedtheSoftwarePlatformplug-insyouarereadytoaddtheSoftwarePlatformsourcestoyourproject.
GeneratesourcecodeFromtheSoftwarePlatformmenu,selectGenerateCodeorclick.
TheSoftwarePlatformsourcesareretrievedfromtherepositoriesandareaddedtoyourprojectinthefolderSoftwarePlatform.
TooloptionssuchasdefinesandincludepathsareaddedtotheGeneratedoptionsfieldinyourprojectproperties.
OptionscanalsobesetontheSoftwarePlatformfolderand/orsub-folders.
14UsingtheTASKINGSoftwarePlatformforARMAlso,everytimeyousavethechangesyouhavemadetoyourSoftwarePlatformdocument,adialogappearsaskingifyouwanttogeneratethecode.
YoucanchangethisbehaviorinthePreferencesdialogasexplainedinSection3.
7,SoftwarePlatformBuilderPreferences.
UsingtheSoftwarePlatformsourcesAplug-indefinesasetoffunctionality-thatis,types,defines,structuresandfunctions.
Thisfunctionalityisaccessiblefromyourapplication.
YoucanfindthegeneratedfilesintheSoftwarePlatformfolderofyourproject.
Tousethegeneratedfiles,youmustadda#includestatementintoyourtop-levelsourcefile(typicallymain.
c):#include"swplatform.
h"Allotherrequiredheaderfilesneededtoaccessthedevicesinthestackareincluded(madeavailable)asaresultofincludingthisfile.
15GettingStartedwiththeSoftwarePlatformBuilderThefollowingisanexampleofswplatform.
hgeneratedasa'wrapper'aroundtheactiveproject'sSoftwarePlatform:YoucannowusethefunctionsoftheSoftwarePlatforminyoursources.
Forexample,intmain(void){http_t*http;http=http_open(HTTP_1);if(!
http){fprintf(stderr,"HTTPopenfailed\n");exit(1);}.
.
.
}3.
5.
UsingtheSampleProjectsASoftwarePlatformrepositorymaycontainanumberofsampleprojects.
Theseexamplescanbeagoodstartingpointforyourownproject.
YoucanimportSoftwarePlatformrepositoryexamplesviatheImportwizardinEclipse.
16UsingtheTASKINGSoftwarePlatformforARMImportanexistingSoftwarePlatformproject1.
FromtheFilemenu,selectImport.
TheImportdialogappears.
2.
SelectTASKINGSoftwarePlatformExampleProjectsandclickNext.
TheImportSoftwarePlatformExamplesdialogappears.
3.
SelecttheSoftwarePlatformexamplesyouwanttoimportintothecurrentworkspaceandclickFinish.
TheoriginalexamplesarecopiedintothecurrentworkspaceandtheSoftwarePlatformsourcesandPinMappersourcesaregenerated.
Oncetheexamplesareinyourworkspaceyoucanbuildtheprojects.
17GettingStartedwiththeSoftwarePlatformBuilder3.
6.
APIReferenceEachrepositorycontainsdetaileddescriptionsofitscontents.
YoucanaccessthisdocumentationfromtheHelpmenu(HelpHelpContentsSoftwarePlatformRepositoryReference).
AccessinghelponindividualdriversorservicesRight-clickonastackitemorasoftwareserviceandselectAPIReference.
Helpappearsontheindividualstackitem.
3.
7.
SoftwarePlatformBuilderPreferencesYoucanusethePreferencesdialoginEclipsetospecifyhowtheSoftwarePlatformBuildershouldoperate.
Tosetpreferences1.
FromtheWindowmenu,selectPreferences.
ThePreferencesdialogappears.
2.
SelectTASKINGSoftwarePlatformBuilder.
TheSoftwarePlatformBuilderpageappears.
3.
SetyourpreferencesandclickOK.
Youcansetthefollowingpreferences:GeneratecodeonsaveBydefaulttheSoftwarePlatformBuildersasksifyouwanttogeneratecodewhenyousaveadocument(Prompt).
Youcanchoosetodothisautomatically(Always)orNever.
18UsingtheTASKINGSoftwarePlatformforARMSoftwarePlatformEditorShowadaptorsandinternalitems.
Bydefault,adaptors(seeSection2.
1.
4,Adaptors)arenotvisibleinthedevicestacks.
ThisoptioncanbeusefulwhenyouneedsupportfromAltiumorwhenyoudevelopyourownplug-ins.
Normally,youdonotneedthisoption.
PropertiesViewShowresourceinfo.
Bydefault,informationabouttheresourceisnotvisibleinthePropertiesview.
YoucanusetheShowResourceInfobutton()inthePropertiesviewtotoggletheresourceinformationonoroff,oryoucanusethispreferenceoptiontoturnresourceinformationonbydefault.
Showhiddenoptions.
Bydefault,severalplug-inoptionsarenotvisibleinthePropertiesview.
ThisoptioncanbeusefulwhenyouneedsupportfromAltiumorwhenyoudevelopyourownplug-ins.
Normally,youdonotneedthisoption.
19GettingStartedwiththeSoftwarePlatformBuilder20UsingtheTASKINGSoftwarePlatformforARMChapter4.
TutorialCreatingaFileSystemonaRAMDiskInthistutorialweshowhowtocreateanexampleSoftwarePlatformproject.
YouwilllearnhowtousethesoftwaretocreateafilesystemonaRAMdisk.
Thisexampleusesthesimulator,sonoadditionalhardwareisrequired.
4.
1.
CreateaProjectThefirststepistocreateaCproject.
ThisisexplainedindetailintheGettingStartedmanualofthetoolset,butforthistutorialwerepeatthisstep.
1.
FromtheFilemenu,selectNewTASKINGARMC/C++ProjectTheNewC/C++Projectwizardappears.
2.
Enteranameforyourproject,forexampleGeneric_FileSystem.
IntheLocationfieldyouwillseethelocationwherethenewprojectwillbestored.
3.
IntheProjecttypeboxyoucanselectwhethertocreateanapplicationoralibrary.
ExpandTASKINGARMApplicationandselectEmptyProject.
ThiscreatesaprojectwithoutaCsourcefile.
ClickNexttocontinue.
TheARMProjectSettingspageappears.
214.
Selectthetargetprocessorcoreorarchitectureforwhichyouwanttobuildtheapplication.
Forexample,architectureARMv7-M.
AfterwardsyoucanalwayschangetheprocessorintheProjectPropertiesfordialog.
5.
LeavetherestofthedialogasisandclickNext.
TheTargetSettingspageappears.
6.
Inordertodebugyourprojectyouneedtocreateadebugconfiguration.
Selectatarget.
Youcanselectatargetboardorasimulator.
ForthistutorialweselecttheARMSimulator.
EnableAddlaunchconfigurationtotheproject.
Thisallowsyoutodebugyourproject.
Leavetheothertabsasis.
Formoreinformation,seesectionCreatingaCustomizedDebugConfigurationinChapterUsingtheDebuggeroftheTASKINGVX-toolsetforARMUserGuide.
7.
ClickFinishtofinishthewizardandtocreatetheproject.
Theprojecthasnowbeencreatedandistheactiveproject.
4.
2.
AddaSoftwarePlatformDocumentNowthatwehaveaprojectwecanaddaSoftwarePlatformdocument.
1.
FromtheFilemenu,selectNewTASKINGSoftwarePlatformDocument.
TheNewSoftwarePlatformDocumentdialogappears.
2.
LeavetheprojectnameandfilenameasisandclickFinish.
AnewSoftwarePlatformdocumentisaddedtotheactiveproject(Generic_FileSystem.
swpxmi).
TASKINGSoftwarePlatformBuildereditorDouble-clickontheSoftwarePlatformdocumentGeneric_FileSystem.
swpxmitoopenit.
Theeditorconsistsoftwosections:theSoftwareServicesandtheDeviceStacks.
22UsingtheTASKINGSoftwarePlatformforARM4.
3.
AddtheServicesandDeviceStacksNowitistimetocreateourRAMdiskandcreateafilesystem.
WhatweneedisaRAMdisk,astoragesystemandterminalservicesfordebugging.
Addasoftwareserviceordevicestack1.
FromtheSoftwarePlatformmenu,selectAdd.
.
.
orclick.
TheAddSoftwareServicesandDeviceStacksdialogappears.
Theleftsideshowsthestackservices,softwareservicesanddrivers.
Therightsideshowsallperipheralsfortheselecteddevice.
Inthistutorialyoudonotseeanyperipheral,becauseweselectedagenericarchitecture.
23TutorialCreatingaFileSystemonaRAMDisk2.
FromtheRepository,selectTASKINGPOSIXimplementationOnlyservicesanddriversfromtheselectedrepositoryareshown.
3.
FromtheServicesandDrivers,selectPOSIXDebugTerminalandPOSIXStorageSystemandclickOK.
ThenewdevicestacksandsoftwareservicesappearintheTASKINGSoftwarePlatformeditor.
Somesoftwareservicesappearautomaticallybecausetheyarerequiredbyotherservicesorstackitems.
24UsingtheTASKINGSoftwarePlatformforARMAsyoucanseewearemissingarequirement.
BlockdeviceI/OisneededforcommunicationbetweentheRAMDiskandtheStorageSystem.
Wewilladdthisnow.
1.
ClickontheMissingRequirementstackitem.
TheGrowStackdialogappears.
Thedialogshowsallpossiblecombinationsofsub-stacksthatyoucanplacebelowtheselectedmodule.
2.
WewanttoaddaRAMDisk.
Todothis,intheNewStackstab,clickonRAMDisktoselectitandclickOK.
25TutorialCreatingaFileSystemonaRAMDiskYourSoftwarePlatformnowlookslikethis:4.
4.
ConfiguretheSoftwarePlatformPlug-insYoucanconfigureperipherals,drivers,stackservicesandsoftwareservices.
Stackitemscanhaveindividualoptionsand/orglobaloptions.
Individualoptionsareonlyvalidforaspecificstackitem,globaloptionsarevalidforallstackitemsofthesametype.
WhenyouclickonanitemintheSoftwarePlatformBuilder,configurationoptionsappearinthePropertiesview.
InthistutorialwewanttoredirectStandardOutputandStandardErrortothePOSIXDebugTerminal.
1.
ClickonthePOSIXStandardDeviceI/Osoftwareservice.
Aviewsimilartothefollowingappears:26UsingtheTASKINGSoftwarePlatformforARM2.
ChangethevalueofStandardOutputandStandardErrortotrue.
Newpropertiesfordevicenameandbuffertypeappear.
Whenyouhoverthemouseoverapropertyballoonhelpappears.
3.
ChangethevalueofstdoutdevicenameandstderrdevicenametoDBG_TERMINAL_1.
ThisistheIDofthePOSIXDebugTerminalstackitem.
ThepropertiesforPOSIXStandardDeviceI/Oshouldnowlooklikethis:4.
5.
GeneratetheSourceCodeNowthatyouhaveaddedandconfiguredtheSoftwarePlatformplug-insyouarereadytogeneratetheSoftwarePlatformsourcesforyourproject.
FromtheSoftwarePlatformmenu,selectGenerateCodeorclick.
TheSoftwarePlatformsourcesareretrievedfromtherepositoriesandareaddedtoyourprojectinthefolderSoftwarePlatform.
TooloptionssuchasdefinesandincludepathsareaddedtotheGenerated27TutorialCreatingaFileSystemonaRAMDiskoptionsfieldinyourprojectproperties.
OptionscanalsobesetontheSoftwarePlatformfolderand/orsub-folders.
Also,everytimeyousavethechangesyouhavemadetoyourSoftwarePlatformdocument,adialogappearsaskingifyouwanttogeneratethecode.
YoucanchangethisbehaviorinthePreferencesdialogasexplainedinSection3.
7,SoftwarePlatformBuilderPreferences.
4.
6.
WriteandBuildtheApplicationNowthattheSoftwarePlatformsourceshavebeengeneratedwecanuseittowriteanapplication.
InthistutorialwemountafilesystemonaRAMdisk,createadirectory,createafileandlistthedirectorycontents.
ThisapplicationusestheTASKINGPOSIXimplementation.
1.
FromtheFilemenu,selectNewSourceFile.
TheNewSourceFiledialogappears.
2.
Enterthesourcefilenamemain.
candclickFinish.
Thenewfilemain.
ciscreatedandreadyforeditingintheeditorview.
3.
AddthefollowingCsourcetothefilemain.
c.
#include#include28UsingtheTASKINGSoftwarePlatformforARM#include#include#include#defineSRC_DEV"/dev/BLOCKIO_1"#defineDIR_SEP"/"/*listthedirectorycontents*/staticintdirlisting(constchar*path){DIR*dir;structdirent*dirent;structstatbuf;charpath_to_file[PATH_MAX];dir=opendir(path);if(dir!
=NULL){printf("Contentsoffolder\"%s\":\n",path);while(1){dirent=readdir(dir);if(dirent==NULL){break;}sprintf(path_to_file,"%s%s%s",path,DIR_SEP,dirent->d_name);if(stat(path_to_file,&buf)==0){if(S_ISDIR(buf.
st_mode)){printf("[DIR]\t%s/\n",dirent->d_name);}elseif(S_ISREG(buf.
st_mode)){printf("[FILE]\t%s\t(%dbytes)\n",dirent->d_name,(int)(buf.
st_size));}else{printf("[UNK]\t%s\n",dirent->d_name);}}}printf("\n");if(closedir(dir)!
=0){29TutorialCreatingaFileSystemonaRAMDiskreturn-1;}return0;}return-1;}intmain(void){intrc;/*CreatetheRAMdisk*/rc=mkfs(SRC_DEV,"fatfs",0,NULL/*"Ramdisk"*/,false);if(rc#include"devices.
h"#include"st_stm32_usart.
h"USART_TypeDef*usart=NULL;intmain(void){/*initializetheUSARTdeviceusingthelibrarywrapper*/usart=stm32_usart_init(ST_STM32F10X_USART_1);printf("Helloworld!
!
!
\n");return0;}/*useSTM32F0XXperipheralaccesslibraryfunctions*/intfputc(intch,FILE*f){/*checktransmitdataregisteremptyflag*/while(USART_GetFlagStatus(usart,USART_FLAG_TXE)!
=SET);/*sendonecharacter*/USART_SendData(usart,(uint8_t)ch);returnch;}4.
FromtheFilemenu,selectSave(Ctrl+S)orclick.
Thefilewillbesaved.
5.
FromtheProjectmenu,selectBuildUSART_printforclick.
TheprojectisbuiltandaDebugfolderiscreatedwiththeabsoluteobjectfileUSART_printf.
abs.
5.
8.
ConnecttheBoardBeforeyoucandebugtheprogramyouneedtoconnecttheSTM3210E-EVALboard.
TheSTM3210E-EVALisanevaluationboardforSTMicroelectronicsARMCortex-M3core-basedSTM32F103Zmicrocontrollers.
ReadtheSTM3210E-EVALevaluationboardUserManual(UM0488)fordetailedinformationabouttheboard.
41TutorialUsingaLibraryWrapperInstallingdriversoftwareBeforeyouconnectJ-LinkorST-LINKtotheboard,firstmakesureyouhaveinstalledthelatestdriversoftware.
YoucandownloadthelatestsoftwareforJ-Linkfromwww.
segger.
com/download_jlink.
html.
YoucandownloadthelatestsoftwareforST-LINKfrom:http://www.
st.
com/web/en/catalog/tools/PF258167(Windows7,XP),http://www.
st.
com/web/en/catalog/tools/PF259459(Windows8).
JumpersettingsSetjumperJP13toPSUforpowerthroughthe5VDCpowerjack.
Connectingtheboard1.
ConnectanyoftheJ-LinkorST-LINKdebuggerprobeswiththe20-pinJTAG/SWDcabletotheboard.
2.
ConnectJ-LinkorST-LINKtoaPCwithaUSBcable.
3.
ConnectportUSART1withaserialcabletoaPC.
4.
Powertheboardwiththe5VDCpoweradapterconnectedtothepowerjackontheboard(CN17).
5.
9.
DebugtheApplicationWearenowreadytousetheevaluationboardtorunanddebugtheapplication.
ToseetheoutputoftheapplicationonyourPCyoucanuseaterminalemulator.
1.
FromtheDebugmenuselectDebugUSART_printf.
Alternativelyyoucanclickthebuttoninthemaintoolbar.
TheTASKINGDebugperspectiveisassociatedwiththeTASKINGC/C++Debugger.
BecausetheTASKINGC/C++perspectiveisstillactive,EclipseaskstoopentheTASKINGDebugperspective.
2.
Optionally,enabletheoptionRemembermydecisionandclickYes.
Thedebugsessionislaunched.
Thismaytakeafewseconds.
Theapplicationsuspendswhenenteringthemain()function.
42UsingtheTASKINGSoftwarePlatformforARM3.
Toresumeexecution,fromtheDebugmenu,selectResume,orpressF8,orclickontheResumebutton().
Theapplicationisexecuted.
WhenyouhaveaterminalemulatoropenonyourPC,thisshows:Helloworld!
!
!
FormoreinformationaboutdebugginganapplicationseeChapterDebuggingyourApplicationoftheGettingStartedwiththeTASKINGVX-toolset,andChapterUsingtheDebuggeroftheTASKINGVX-toolsetforARMUserGuide.
43TutorialUsingaLibraryWrapper44UsingtheTASKINGSoftwarePlatformforARMChapter6.
TutorialCreatingaLocalRepositoryInthistutorialweshowhowtocreateyourownSoftwarePlatformrepository.
Thiscanbeusefulwhenyouwanttocreateyourownplug-insortoadaptexistingplug-instosuityourneeds.
WeassumethattheGeneric_FilesystemprojectofChapter4,TutorialCreatingaFileSystemonaRAMDiskisstillpresentintheC/C++Projectsview.
6.
1.
CreateaLocalRepositoryProjectTousealocalrepositoryweneedtocreateaproject.
Thisdoesnothavetobeatoolsetproject,becausewedonothavetocompileanything.
Itisjustacontainerforyourlocalplug-ins.
Therefore,itcanbeageneralproject.
1.
FromtheFilemenu,selectNewProjectTheNewProjectwizardappears.
2.
SelectGeneralProjectandclickNext.
TheProjectpageappears.
3.
Enteranameforyourproject,forexampleMy_Repository.
IntheLocationfieldyouwillseethelocationwherethenewprojectwillbestored.
4.
ClickFinishtofinishthewizardandtocreatetheproject.
TheprojecthasnowbeencreatedandisvisibleintheC/C++Projectsview.
6.
2.
AddaSoftwarePlatformPlug-inYoucancopyexistingplug-insasastartingpoint,oryoucanwriteonefromscratch.
Inthistutorialwemakeacopyofaplug-inthatwasgeneratedinthetutorialofChapter4,TutorialCreatingaFileSystemonaRAMDisk.
1.
FromtheGeneric_Filesystemproject,right-clickontheramdiskfolderinSoftwarePlatform/platform/generic/driversandselectCopy.
TheexactpathdependsonthedirectorystructureoftheSoftwarePlatformrepositoryfromwhichtheplug-inisretrieved.
YoucanfindoutthecorrectpathwhenyouclicktheShowResourceInfobutton()inthePropertiesviewoftheRAMDisk.
452.
Right-clickontheMy_RepositoryprojectandselectNewFolder.
TheNewFolderdialogappears.
3.
SelecttheMy_Repositoryparentfolderifithasnotbeenselectedalready.
4.
IntheFoldernamefieldenteranametocategorizethetypeofplug-ins.
Forthistutorial,enterMy_customized_pluginsandclickFinish.
5.
Right-clickontheMy_customized_pluginsfolderandselectPaste.
Acopyoftheramdiskplug-inisnowpresentinthelocalrepository.
6.
3.
ModifytheSoftwarePlatformPlug-inAslongasthenameofaplug-indoesnotchange,thenewplug-inoverrulestheplug-ininthedefaultrepository.
Inthistutorialwewillonlyalterthecaption(thenameofthestackitem)oftheRAMdiskplug-inwejustcopied.
1.
OpentheMy_Repositoryprojectandopentheramdisk.
Pluginfile.
46UsingtheTASKINGSoftwarePlatformforARMThefileramdisk.
Pluginappearsintheeditorview.
2.
Underthe[Plugin]part,changethelineCaption=RAMDiskintoCaption=MyRAMDiskIfaquestionappearsthatthefileisread-onlyandifyouwishtomakeitwritable,clickYes.
3.
FromtheFilemenu,selectSave(Ctrl+S)orclick.
Thefilewillbesaved.
6.
4.
UsetheLocalRepositoryNowthatwehavealocalrepository,wewanttouseitintheGeneric_FilesystemprojectthatwecreatedinChapter4,TutorialCreatingaFileSystemonaRAMDisk.
YoucanuseEclipseplatformURLsorafileURLtospecifythelocationofarepositoryoryoucanuseabrowsebutton.
ThefollowingURLsaresupported.
DescriptionURLThisURLisusedtoidentifyaresourcelocatedintheworkspace.
Thenextpathsegmentafter"resource"shouldbethenameofaproject,whichcanbefollowedbythefolderand/orfilewewanttolocate.
platform:/resourceThisURLisusedtolocatearesourceavailableinaEclipseplug-in/bundle.
Thepathsegmentafter"plugin"shouldbetheidentifierofthebundle,whichcanbefollowedbythepathoftheresourceinthebundle.
ThisURLisusedinternallyforthedefaultSoftwarePlatformrepository.
platform:/pluginThisURLisusedtospecifyalocalfileordirectory.
file://47TutorialCreatingaLocalRepository1.
IntheGeneric_Filesystemproject,opentheSoftwarePlatformdocumentGeneric_Filesystem.
swpxmi.
2.
SelecttheSoftwarePlatformBuildersoftwareservice.
TheSoftwarePlatformBuilderPropertiesviewappears.
3.
ChangethevalueofLocalRepositoriestoplatform:/resource/My_Repository.
Notethatthisfieldiscasesensitive.
YoucanentertheURLdirectlyoryoucanclickthebuttontoopentheLocalRepositoryLocations.
ClickAddtoopentheSelectLocationdialog.
ClickWorkspacetoopentheFolderSelectiondialog.
SelectMy_RepositoryandclickOKinalldialogs.
AnerrorappearsthattheRepositorycacheisout-of-date.
48UsingtheTASKINGSoftwarePlatformforARM4.
FromtheSoftwarePlatformmenu,selectReloadRepositoryorclick.
Asyoucansee,theRAMDiskstackitemhasbeenreplacedbyMyRAMDisk.
Ifyouwouldgeneratecodeagain(),theexistingplug-ininthegeneratedSoftwarePlatformfolderisreplacedbytheplug-infromMy_Repository.
AsyoucanseetheMy_customized_pluginsfolderhasbeenaddedtotheGeneric_FileSystemproject.
49TutorialCreatingaLocalRepository50UsingtheTASKINGSoftwarePlatformforARMChapter7.
ContentoftheDefaultARMRepositoriesThechapterdescribesthecontentofthedefaultARMrepositories.
WhenAltiumreleasesanewversionofarepositoryyoucanupdatethisrepositorybyusingtheAvailableUpdateswizard.
Tocheckforupdates1.
FromtheHelpmenu,selectCheckforUpdates.
TheAvailableUpdateswizardappears.
2.
FollowthestepsinthewizardandclickFinish.
OnlinerepositorydocumentationEachrepositorycontainsdetaileddescriptionsofitscontents.
YoucanaccessthisdocumentationfromtheHelpmenu(HelpHelpContentsSoftwarePlatformRepositoryReference-.
.
.
).
7.
1.
TASKINGPOSIXRepositoryThePortableOperatingSystemInterfacePOSIXisasetofwell-establishedstandardsthatdefineastandardizedwayforanapplicationtointerfacetotheoperatingsystem.
BecauseoftheaimofportabilityandreadabilitywehavechosenPOSIXasourstandardinterfacesatapplicationlevelforatleastthekernel(multithreading),deviceI/Oandnetworkingservices.
ThePOSIXstandardsdonotspecifyhowservicesmustbeimplemented,justtheirsemantics.
Implementerscanchoosetheirimplementationaslongastheyfollowthespecificationoftheinterface.
Thesestandardshavebecomethede-factoprogrammingstandardsalsoforembeddedenvironments.
ThecompletesetofPOSIXservicesasdefinedinthestandardmaybeusefulforlargeapplications,butthesetisconsideredtobetoolargeformostembeddedsystems.
Embeddedsystemsusuallyhavetightmemoryrequirements,maynothavememorymanagementcapabilities,andmaynotevenhaveasecondarymemoryforimplementingtheUNIXfilesystem.
ForthesereasonsthePOSIXstandardrecognizestheneedforthecreationofsubsetsoftheoperatingsystemservices.
TheIEEEStd1003.
13-2003edition(POSIX.
13)describesfourreal-timeapplicationenvironmentprofilesandtheirminimumhardwarerequirements.
TheTASKINGPOSIXimplementationconformstothePSE51profileforMinimalReal-timeSystemsandsupports:Multi-threadingStandarddeviceI/O51StandardfileI/O(PSE52)StandarddeviceSharedMemoryroutinesFilesysteminterfaceforaccessingsockets(PSE53)FilesysteminterfaceforaccessingsharedmemoryobjectsBasicsupportformessagepassing(PSE52)BasicsupportforsignalsFATFileSystemSomefeatureshavelimitedfunctionalityfordeviceswithoutperipheralsupport.
FormoreinformationseetheTASKINGPOSIXImplementation.
7.
2.
STM32RepositoryTheSTM32repositorycontainsallSTM32specificcontent,likeperipherals,low-leveldriversandlibrarywrappers.
Supportisincludedforthefollowingdevicefamilies:STMicroelectronicsSTM32F0xxSTMicroelectronicsSTM32F10xSTMicroelectronicsSTM32F2xxSTMicroelectronicsSTM32F30xSTMicroelectronicsSTM32F37xSTMicroelectronicsSTM32F4xx(noFPsupport)STMicroelectronicsSTM32L1xxThisrepositorycontainssoftware/firmwarefromSTMicroelectronicswhichislicensedunderMCD-STLibertySWLicenseAgreementV2.
YoumaynotusethispackageexceptincompliancewiththisLicense.
YoumayobtainacopyoftheLicenseat:http://www.
st.
com/software_license_agreement_liberty_v2(PDF)52UsingtheTASKINGSoftwarePlatformforARM7.
3.
EFM32RepositoryTheEFM32repositorycontainsallSiliconLabsEFM32specificcontent,likeperipherals,low-leveldriversandlibrarywrappers.
Supportisincludedforthefollowingdevicefamilies:EFM32GeckoEFM32GiantGeckoEFM32LeopardGeckoEFM32TinyGeckoEFM32WonderGeckoEFM32ZeroGeckoThisrepositorycontainssoftware/firmwarefromSiliconLaboratorieswhichislicensed.
Seethetopofeachfilefordetailedinformation.
BasicallyyouarefreetousetheSiliconLabscodeforanyprojectusingSiliconLabsdevices.
7.
4.
GenericRepositorySoftwareservices,driversandperipheralsinthegenericrepositoryareprovidedasBonusTechnologyasdescribedintheAltiumEULA.
Somethird-partysoftwareisincludedwhichmayrequirespeciallicenseagreements.
Checkthegeneratedcodefortheexactlicenseusageconditions.
SoftwareservicesThefollowingtablecontainsanoverviewofthesoftwareservicespresentinthegenericrepository.
DescriptionSoftwareServiceGenericinterfacetoAdvancedEncryptionStandard(AES)encryptionmodules.
AESInterfacetoaudiocontrollerservices.
AudioServiceBluetoothHumanInterfaceDevice(HID)class.
Interfacestobluetoothservice.
BluetoothHIDServiceBluetoothinterface.
BluetoothServiceServiceforethernetperipherals.
EthernetProtocolServicesGPS-NMEAdecoder.
GPS-NMEAServicesServiceforgraphicsroutines,low-leveldrawingfunctionality.
GraphicsServicesTheAltiumGraphicalUserInterface(AGUI)containscomponentsyoucanusetobuildaUserInterface.
GUIServicesHTTPinterface.
HyperTextTransferProtocolInterruptservices.
Usedbyinterrupt-drivendriversoftware.
InterruptManagement53ContentoftheDefaultARMRepositoriesDescriptionSoftwareServiceBasicimplementationtodecodeaJPEGimage.
JPEGDecoderBasicimplementationtoencodeaJPEGimage.
JPEGEncoderInterfacetoYAJL'sJSONgenerationfacilities.
JSONParserGenericinterfacetoGPS-NMEAorSimcomATGPSservices.
LocationServicesSSLandTLSimplementationdesignedforsmallfootprintapplicationsanddevices.
MatrixSSL/TLSServicestocommunicatewithmodemsusingHayesATcommands.
ModemServicesLWIPPPPservice.
Point-to-PointProtocolServicesThepointerservicekeepsthecurrentpointerpositionup-to-datedependingontheinputfrommouseand/ortouchscreen.
PointerServicesGPSreceiver.
SimcomATGPSServiceTimingandtimerservices.
SoftwareTimingServicesAutoIPAutomaticLinkLocalIPConfiguration.
TCP/IPNetworkingInterfacetotouchscreencontrollerservices.
TouchscreenServicesDriverforUSBHostBluetoothHCI.
USBHostBluetoothHCIServiceDriverforUSBHostHub.
USBHostHubServiceDriverforUSBHostKeyboard.
USBHostKeyboardServiceDriverforUSBHostMSD.
USBHostMassStorageServiceDriverforUSBHostMouse.
USBHostMouseServiceGenericUSBHostservice.
USBHostServiceDriverforUSBHostUVC.
USBHostVideoServiceThismodulepartiallyimplementsRFC4122.
UUIDGeneratorGenericdriversGenericdriversprovideagenericinterfacetoacertaintypeofperipheral.
Iftheapplicationusesthegenericinterface,thenthehardwarespecificdrivercanbechangedwithouttheneedtomodifytheapplication.
Forexample,youcanhaveagenericADCdriverthatinterfaceswithanADC084S021ADCdriver(SPI).
DescriptionDriverGenericlow-ratewirelessPANdriver.
802.
15.
4LR-WPANSoftwareimplementationoftheAdvancedEncryptionStandard(AES).
AESEncryption/DecryptionPlatformindependentgenericexternalinterruptsupport.
ExternalInterruptGenericinterfaceforAnalog-to-DigitalConverters.
GenericADCDriver54UsingtheTASKINGSoftwarePlatformforARMDescriptionDriverGenericinterfaceforControllerAreaNetworks.
GenericCANDriverGenericinterfaceforDigital-to-AnalogConverters.
GenericDACDriverGenericinterfaceforPulse-WidthModulation.
GenericPWMDriverGenericinterfaceforRealTimeClocks.
GenericRTCDriverInterfaceforthecreationofmemorybasedfilesystems.
RAMDiskExternaldriversExternaldriversaredriversforoff-chipperipherals.
Theseoff-chipperipheralsareconnectedtothechipasanSPIslavedevice,anI2Cslavedevice,orviasomeotherinterfacesuchasGPIOorDMA.
Intheformertwocasesanon-chipSPImasterperipheraloranon-chipI2Cmasterperipheralisrequired.
Forexample,theADC084S021ADCdriver(SPIslave)requirestheSTM32SPIdriver.
Thefollowingtablescontainanoverviewoftheexternaldriverspresentinthegenericrepository.
Somedriversappearinmorethanonetable,whichmeansthattheycanhavemorethanoneinterface.
Externaldrivers-I2CDescriptionDriverExternaldrivertoturnpoweronoroffofalightphotosensor.
APDS9300LightPhotoSensorDriverExternaldrivertointerfacewiththeBMP085DigitalPressureSensor.
BMP085PressureSensorDriverInterfacetoI2CcontrolportofCS4322stereoaudioCODEC.
CS4322AudioCodecDriverInterfacetoLIS302DLMEMSmotionsensor.
LIS302DLMEMSMotionSensorInterfacetoSTLM75DigitalTemperatureSensor&ThermalWatchdog.
LM75TemperatureSensorInterfacetoI2CbasedM24CxxserialflashmemorydevicedriverM24CxxSerialI2CBusEEPROMDriverInterfacetotheMAX1037ADconverterdevicedriver.
MAX1037ADCDriverInterfacetotheMAX5841DAconverterdevicedriver.
MAX5841DACDriverDevicedriverforMAX6966(10-PortConstant-CurrentLEDDriver)peripheral.
MAX6966LEDDriverDevicedriverforMCP3021A/DConverter.
MCP3021A/DConverterDriverforSSD0300OLEDdisplayoverI2C.
SSD0300I2COLEDDriverInterfacetoSTMPE811touchscreencontroller/GPIOexpander.
STMPE811TouchscreenController/GPIOExpanderDrivertoaccessconfigurationregistersofaTVP5150videoinputdecoderdeviceoveranI2Cbus.
TVP5150VideoDecoderDriver55ContentoftheDefaultARMRepositoriesExternaldrivers-SPIDescriptionDriverFour-channelCMOS8-bitanalog-to-digitalconverterwithahigh-speedserialinterface.
ADC084S021ADCDriverFour-channelCMOS10-bitanalog-to-digitalconverterwithahigh-speedserialinterface.
ADC104S021ADCDriverExternaldrivertoturnpoweronoroffofalightphotosensor.
APDS9300LightPhotoSensorDriverInterfacetothedevicedriverforAT86RF231802.
15.
4packetradio.
AT86RF231RadioDeviceDriverInterfacetoSPIcontrolportofCS4270stereoaudioCODEC.
CS4270AudioCodecDriverInterfacetotheDAC084S085DAconverterdevicedriver.
DAC084S085DACDriverInterfacetotheDAC104S085DAconverterdevicedriver.
DAC104S085DACDriverDevicedriverforDS1391(RealTimeClock)peripheral.
DS1391RealTimeClockDriverInterfacetoENC28J60ethernetcontrollerdevicedriver.
ENC28J60DriverExternaldriverforICS307-02seriallyprogrammableclocksource.
ICS307ClockGeneratorDriverDevicedriverforanILI9320basedLCDthatisconnectedthroughSPI.
ILI9320LCDModuleDriver(SPI)DevicedriverfortheILI9341DisplayController.
ILI9341LCDModuleDriverInterfacetoSPIbasedM25Px0serialflashmemorydevicedriver.
M25Px0SerialFlashMemoryDriverTheMAX1104CODECprovidesbothan8-bitanalog-to-digitalconverter(ADC)andan8-bitdigital-to-analogconverter(DAC).
MAX1104AudioCodecDriverDevicedriverforMAX1229(RealTimeClock)peripheral.
MAX122912x12ADCDriverDevicedriverforPCF2123(RealTimeClock)peripheral.
PCF2123RealTimeClockDriverDrivertoaccessSDcardreadersthroughanSPIcontroller.
SDCardReaderDriverDevicedriverforSPFD5408basedLCDsthroughSPIconnections.
SPFD5408LCDModuleDriver(SPI)DriverforSSD1329OLEDdisplayoverSPI.
SSD1329SPIOLEDDriverExternaldrivers-otherDescriptionDriverExternaldrivertointerfacewithaproximitysensor.
APDS9700ProximitySensorDriverInterfacetothedevicedriverforAT86RF231802.
15.
4packetradio.
AT86RF231RadioDeviceDriverDesignWareCoreportabilitylibrary,low-levelOSwrapperfunctions.
DWCUSBOTGDriver56UsingtheTASKINGSoftwarePlatformforARMDescriptionDriverExternaldrivertointerfacewithahumiditysensor.
HIH5030HumiditySensorDriverDevicedriverforanILI9320basedLCDthatisconnectedtotheparallelinterface.
ILI9320LCDModuleDriver(parallel)DevicedriverfortheILI9341DisplayController.
ILI9341LCDModuleDriverInterfacetoM25Px0parallelflashmemorydevicedriver.
M25Px0FlashMemoryBlockI/ODevicedriverforSPFD5408basedLCDsthroughparallelconnections.
SPFD5408LCDModuleDriver(parallel)DriverforSSD1329OLEDdisplayoverSPI.
SSD1329SPIOLEDDriverDriverforST7637LCDdisplaywithparallelinterface.
ST7637_PARLCDDriver57ContentoftheDefaultARMRepositories58UsingtheTASKINGSoftwarePlatformforARMChapter8.
GlossaryThefollowingterminologyisusedtodescribetheTASKINGSoftwarePlatformconcepts(inalphabeticalorder).
SoftwarePlatformThesourcecodegeneratedbytheSoftwarePlatformBuilder.
Thesourcecodebecomespartofyourproject.
AgraphicalrepresentationoftheSoftwarePlatformispresentintheSoftwarePlatformBuilder.
SoftwarePlatformBuilderThegraphicaleditorwhereyoucaneditaSoftwarePlatformdocumentandwhereyoucangeneratethesourcecodeforyourSoftwarePlatform.
TheeditorshowsagraphicalrepresentationofyourSoftwarePlatform.
SoftwarePlatformdocumentAfilewithextension.
swpxmiwhichispartofyourproject.
ItcontainstheconfigurationofyourSoftwarePlatformandismanagedbytheSoftwarePlatformBuilder.
SoftwarePlatformplug-inormoduleSoftwarePlatformdefinitionfiles,sourcecodeandotherresources.
Plug-insarebundledinaSoftwarePlatformrepository.
SoftwarePlatformrepositoryThecollectionofSoftwarePlatformplug-ins.
ItprovidesthecontentsforageneratedSoftwarePlatform.
TASKINGSoftwarePlatformThemainsoftwareframeworkdeliveredbyAltium,consistingofSoftwarePlatformrepositoriesandtheSoftwarePlatformBuilder.
5960UsingtheTASKINGSoftwarePlatformforARM

香港2GB内存DIYVM2核(¥50月)香港沙田CN2云服务器

DiyVM 香港沙田机房,也是采用的CN2优化线路,目前也有入手且在使用中,我个人感觉如果中文业务需要用到的话虽然日本机房也是CN2,但是线路的稳定性不如香港机房,所以我们在这篇文章中亲测看看香港机房,然后对比之前看到的日本机房。香港机房的配置信息。CPU内存 硬盘带宽IP价格购买地址2核2G50G2M1¥50/月选择方案4核4G60G3M1¥100/月选择方案4核8G70G3M4¥200/月选择...

火数云-618限时活动,国内云服务器大连3折,限量50台,九江7折 限量30台!

官方网站:点击访问火数云活动官网活动方案:CPU内存硬盘带宽流量架构IP机房价格购买地址4核4G50G 高效云盘20Mbps独享不限openstack1个九江287元/月立即抢购4核8G50G 高效云盘20Mbps独享不限openstack1个九江329元/月立即抢购2核2G50G 高效云盘5Mbps独享不限openstack1个大连15.9元/月立即抢购2核4G50G 高效云盘5Mbps独享不限...

国内云服务器 1核 2G 2M 15元/月 萤光云

标题【萤光云双十二 全场6折 15元/月 续费同价】今天站长给大家推荐一家国内云厂商的双十二活动。萤光云总部位于福建福州,其成立于2002 年。主打高防云服务器产品,主要提供福州、北京、上海 BGP 和香港 CN2 节点。萤光云的高防云服务器自带 50G 防御,适合高防建站、游戏高防等业务。这家厂商本次双十二算是性价比很高了。全线产品6折,上海 BGP 云服务器折扣更大 5.5 折(测试了一下是金...

bluestack为你推荐
快递打印怎么在电脑上打印快递单深圳公交车路线深圳公交车路线照片转手绘如何把真人图片用photoshop做成手绘图片arm开发板想购买一个ARM开发板,选什么类型的好网站联盟百度网盟是什么,怎么加入数码资源网安卓有没有可以离线刷题的软件?开机滚动条怎么减少开机滚动条?数据库损坏数据库坏了怎么办虚拟专用网安卓手机的虚拟专用网设置是什么东西?怎么用?云挂机云挂机每天2+元你提了吗?
域名注册中心 美国加州vps 淘宝二级域名 过期域名抢注 本网站服务器在美国维护 息壤备案 百度云100as webhosting 美国主机论坛 godaddy优惠码 512m 警告本网站 网站挂马检测工具 老左正传 hkg 新家坡 vip购优惠 美国在线代理服务器 傲盾官网 免费dns解析 更多