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

数脉科技香港自营,10Mbps CN2物理机420元/月

数脉科技怎么样?数脉科技品牌创办于2019,由一家从2012年开始从事idc行业的商家创办,目前主营产品是香港服务器,线路有阿里云线路和自营CN2线路,均为中国大陆直连带宽,适合建站及运行各种负载较高的项目,同时支持人民币、台币、美元等结算,提供支付宝、微信、PayPal付款方式。本次数脉科技给发来了新的7月促销活动,CN2+BGP线路的香港服务器,带宽10m起,配置E3-16G-30M-3IP,...

BGP.TO日本和新加坡服务器进行促销,日本服务器6.5折

BGP.TO目前针对日本和新加坡服务器进行促销,其中日本东京服务器6.5折,而新加坡服务器7.5折起。这是一家专门的独立服务器租售网站,提供包括中国香港、日本、新加坡和洛杉矶的服务器租用业务,基本上都是自有硬件、IP资源等,国内优化直连线路,机器自动化部署上架,并提供产品的基本管理功能(自助开关机重启重装等)。新加坡服务器 $93.75/月CPU:E3-1230v3内存:16GB硬盘:480GB ...

陆零(¥25)云端专用的高性能、安全隔离的物理集群六折起

陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...

bluestack为你推荐
iphone360手机卫士iPhone版的360手机卫士可以杀毒吗?fontfamily小程序font-family有哪些如何免费开通黄钻怎么免费开通黄钻金山杀毒怎么样金山杀毒软件咋样?直播加速有没有软件使已经下载好了的视频播放加速,例如30分钟的视频15分钟或者20分钟播放完迅雷云点播账号求迅雷云播账号宕机何谓宕机?电子商务网站模板电子商务网站模板哪个好?电子商务网站模板免费建站怎么样?虚拟机软件下载谁有虚拟机软件的网址要好用的网站营运网站运营要学些什么?
apache虚拟主机 vps动态ip 万网免费域名 搬瓦工官网 免费ftp空间 512m内存 免费ftp站点 100m免费空间 毫秒英文 数字域名 超级服务器 香港亚马逊 阿里云官方网站 西安服务器托管 永久免费空间 成都主机托管 apnic 重庆联通服务器托管 湖南铁通 最新优惠 更多