EasingembeddedLinuxsoftwaredevelopmentforSBCsMostprogrammerstodayleavingcollegewithElectricalEngineeringorComputerSciencedegreesarefairlywellversedinprogrammingonaLinuxdesktopplatform.
WhentheseprogrammersneedtotaketheleaptoprogrammingembeddedLinuxsystems,theyareoftensurprisedandbewilderedthattheprogramtheywroteontheirdesktopwillnotruntheirLinuxembeddedsystem.
Toalleviatethisproblem,someprogrammerschoosetouseversionsofdesktopsystemsinembeddedapplications.
Thisisgenerallynotagoodfitasdesktopsystemstypicallyhavefansandharddrives,whicharefailurepoints.
Abiggerobstacleisfastchange;theneedtohavethefastest,newesttechnologyobsoletesdesktopsystemsinaslittleassixmonths.
Designingalong-lifeembeddedproductaroundaplatformwithnolongevityisarecipefordisaster.
Evenifdesktopplatformscouldbeguaranteedtobearoundfiveyearsfromnow,theLinuxkernelandassociateddistributionsaremovingtargets.
Thekernelandstandardlibrariesareconstantlyevolving,anddistributionsarefightingtokeeppace.
Kernelpatchesandlibraryupdatescanrenderauser'sprograminoperable.
Thissituationisexacerbatedwhenengineersarerequiredtoupdatedevelopmentmachinesduetoasecurityholeorotherissue.
Awaytoabstracttheembeddeddevelopmentenvironmentfromthestandarddesktopenvironmentisneeded.
Thekeyisnotonlytofindalong-lifeembeddedLinuxhardwareplatform,butalsoalong-lifeembeddedLinuxsoftwareplatform.
AccomplishedembeddedLinuxprogrammersoftencancreateanembeddeddevelopmentplatformbygatheringthecorrectlibrariesandtoolversions,andmodifyingtheMakefileappropriately.
Evenwhensuccessful,it'sasuboptimumdevelopmentenvironment.
Ideally,compilersshouldnotrelyonthelibrariesandkernelsoftheirhost,butinsteadonthetoolchainofthemorestatictarget.
Thesoftwareplatformshouldbecompatiblewithotherplatforms,otherOperatingSystems(OSs),andotherlanguages.
TheSoftwareDevelopmentKit(SDK)shouldbebasedontoolchainswithbroadcommunitysupportsothatevenifoneoftheorganizationsdrivingtheSDKstopssupportingit,itsurvivesontheshouldersoftherest.
EnterEclipseEclipseisanopensource,redistributable,cross-platform,frameworkforcodedevelopment.
ItnativelysupportsJava,andC/C++withitsCDTplug-in.
ItprovidesmanyofthesamefunctionsthathavebeenreinventedoverandoverbythecommercialIntegratedDevelopmentEnvironments(IDEs)(syntaxhighlighting,languageawaresearches,codecompletion,andsoon)butdoesn'trelyonanyoneparticularsetoftoolstoaccomplishit(seeFigure1).
Printedfrom:http://www.
embedded-computing.
com/departments/eclipse/2006/11/ByNathanGustavsonEMAC,Inc.
andEricRossiEMAC,Inc.
Page1of5Printedfromembedded-computing.
comFigure1(clicktozoom)TheflexibilityofthissolutionledEMACandotherembeddedsoftwarecompaniestobuilddevelopmentplatformsinanEclipseenvironment.
Thiscommercialadoptionhascreateddefactostandardizationforembeddedcodedevelopers.
OEMscanwriteEclipseplug-insandprojectsthatworkwithGNUtoolchainswhileprovidingcompatibilitywithnumerouscommercialplatformsrunningbothWindowsandLinux.
EmbeddedJavaEMAC'soriginalEclipseenvironmentwasdevelopedfortheSoM-400Mmodule,usingaDS400TINIprocessorfromDallas/Maxim.
Thisprocessor'sfirmwarecontainsaproprietaryembeddedJRE.
BuildingJavacodeforthesystemiscompletedbycompilingclassesforanormalJREenvironment,replacingthecorejarswithTINIspecificjarsandthenconvertingtheresultingclassesintoTINIexecutables.
TodothisdeveloperstookadvantageofEclipse'snativeAntsupport,whichcanbeusedtocreateakindofadvancedJavaMakefileinXMLformat.
AntthenbuildstargetsbyusingEclipse'sJDTcompileradaptorclass,whichmakestheinternalcompileravailabletoAnt'stasks.
TheSourceforgeTiniAntextensionthenperformsthefinalconversionfromJavaclasstoTINIexecutable.
Allthecomplexdeclarationsrequiredtodothisarehiddeninatop-levelbuild.
propertiesfile,vastlyreducingthecomplexityofcompilationfortheSoM-400Mtosimple,standardAnttasks.
Cross-compiledCTheEclipsetoolsprojectprovidesanopen,redistributableCdevelopmentplug-incalledtheCDT.
Itprovides,amongotherthings:SyntaxhighlightingCodecompletionOn-the-flybuildsDebuggerintegration(usingGDB'sMIinterface)Itdoesnotprovidetheactualcompiler,linker,anddebuggerbinaries.
Thesearespecifictothetargetbeingbuiltforandmustbeprovidedfromanexternalsource.
TheycanthenbeintegratedintoEclipsebywritinganEclipseplug-in,or,moresimply,byusing"standard"makeprojectsandspecifyingthecompilerintheMakefile.
TheMakefileinListing1willcompileasimpleHelloWorldexampleprojectintheEMACEclipseenvironment.
Page2of5Printedfromembedded-computing.
comLiketheembeddedJavaenvironment,complexcompiler/linkerflagscommontoallprojectsarehiddeninahigher-levelfile,whichisthenincludedbyallMakefilesintheSDK.
EMACprovidescross-compilersforallitsboardsbybuildingfreelyavailableGNUcross-compilersagainstthelibrariesofthetargetdevelopmentOS.
OnLinuxtheselibrariesarenative;onWindowstheCygwinlibraryisused.
Wethen"hide"theactualEclipseexecutableandreplaceitwithabatchfilethattemporarilyaddstherequiredpathstosupporttheGNUtoolchainswhenEclipseisstarted.
DebuggingDebuggingtakesplaceusingGDBandGDBServertofacilitatearemotedebuggingenvironment.
Toaccomplishthis,thecompiledexecutableisuploadedtotheSBCandaGDBServersessionisinitiatedlisteningonaspecificportorserialterminal.
TheEclipseDebuggingperspectiveallowstheusertothendebugtheapplicationbyspecifyingtheconnectionparameterstouseaswellastheversionofGDBbuiltforthetargetarchitecture.
TheDebuggingperspectivedisplaysthesourcecodeoftheprogramtobedebuggedandthegeneratedassemblycode.
Itiseasytomanageandmonitorbreakpointsandvariables,aswellassingle-stepthroughtheprogramlinebyline.
Thecurrentpositioninthesourcecodeisautomaticallyhighlighted.
Eclipseprovidesagraphicaldebuggingenvironmentthatgreatlysimplifiestheprocessofremotetargetdebugging.
TargetcommunicationWhendevelopingforanembeddedenvironment,itwillbenecessarytoestablishaconnectionwiththetargetboard,eitherbyaserialterminalprogramorthroughTCPusingaTelnet,SSH,orothersimilarconnection.
Whenthisisdonethroughthecommandlineinterfaceoragraphicalfrontend,theprogrammerisforcedtoconstantlyswitchbetweenwindowstomonitortheconnectionandtheIDEsimultaneously.
EMACeliminatesthisproblembyintegratingEclipseplug-insthatallowforSSH,Telnet,andTerminalconnectionsallwithinEclipse.
ThisallowstheprogrammertomonitortheembeddedtargetboardasifitwerealocalfilesystemandissuecommandsdirectlywithouthavingtoleavetheEclipseenvironment.
CVSEclipseprovidesapowerfulCVSnatively.
BysettingupaCVSloginandprovidingpasswordstocustomers,developerscaninsuretheyalwayshaveaccesstothemostrecentversionsofcodeandbugfixesforproducts.
SDKBASE=.
.
/.
.
/CROSS=$(SDKBASE)gcc-4.
0.
0-i486-D/bin/i486-linux-CC=$(CROSS)gccLIBFLAGS=-lc#VERBOSE=-vCFLAGS=-gOFLAGS=-WlTARGET=helloCFILES=hello.
call:$(TARGET)$(TARGET):objects$(CC)$(VERBOSE)*.
o$(OFLAGS)$(SLIBS)-o$(TARGET)$(LIBFLAGS)objects:$(CFILES)$(CC)$(VERBOSE)$(CFLAGS)-c$(CFILES)clean:$(RM)*.
o*.
gdb$(TARGET)TARGET_IP=192.
168.
0.
1LOGIN=someuserPASSWORD=somepasswordupload:wput$(TARGET)ftp://$(LOGIN):$(PASSWORD)@$(TARGET_IP)/.
.
/.
.
/tmp/$(TARGET)"Withalittleintegration,anOEMcancreatearobust,cross-platformdevelopmentplatformfortheirboardsthatwillrunonthesameplatformadoptedbymanycommercialsoftwarevendors.
"Page3of5Printedfromembedded-computing.
comUploadingsoftwarepatchesandentirelynewcomponentsforSDKsontoaCVSserverprovidesup-to-the-minutesoftwaresupporttocustomers,whocangraphicallyviewdifferencesinfilesandpatchtheirownSDKwithsome,all,ornoneofwhathasbeenuploaded.
DocumentationEclipseprovidesitsownnativebrowser,whichisbeneficialforcreatingHTMLlinkeddocumentationrightintheworkspace.
Inthisway,customerscanbrowsethroughHTMLdocumentation(similartothatgeneratedbyDoxygenandJavadoc).
Context-sensitivehelpisalsointegratedinEclipse(seeFigure2),allowingnewuserstobemoreproductive.
Figure2(clicktozoom)Thisdocumentationcanlinkrightbacktothesoftwaredeveloper'swebsiteaswell,allowinguserdocumentationtobeaddeddynamically.
Userscanswitchrightfromcodetodocumentationwithatab,ratherthannavigatingseveralwindowsatonce.
Integratedtools,betterdevelopmentEclipseprovidesanenvironmentwhereGNUtoolsandcommercialtoolscanplaytogether.
Withalittleintegration,anOEMcancreatearobust,cross-platformdevelopmentplatformfortheirboardsthatwillrunonthesameplatformadoptedbymanycommercialsoftwarevendors.
WithintheEclipseframework,EMACusescross-compilationtoalleviatetheproblemofabstractingtheembeddeddevelopmentenvironmentfromthestandarddesktopenvironment.
DebuggingisaccomplishedusingGDBwithEclipsewindowsforthedebugger'sinputandoutput.
CommunicationwiththetargetisalsointegratedintoEclipsethroughTelnet,FTP,Terminal,andSSHplug-ins.
CVSversioncontrolandHTMLdocumentationarebothaccomplishedwithintheEclipseenvironmentaswell.
AlloftheaforementioneddevelopmentcapabilitiesrolledupintoastandardIDEmakeforapowerful,efficientdevelopmentplatformthatcanbeusedwithasmall8-bitJava-basedcontrolleranda32-bitLinuxserverprogrammedinC.
ThisisthepowerofEclipse.
NathanZ.
GustavsonisaseniorsystemsengineeratEMAC,Inc.
specializinginLinuxandreal-timecontrol.
HeholdsaBSinElectricalEngineeringandiscurrentlypursingaMSatSouthernIllinoisUniversity.
EricRossiisaseniormanageratEMAC,Inc.
whereheisresponsiblefornewproductdevelopmentandcustomengineeringmanagement.
Erichasmorethan25yearsofexperienceinembeddedsystemdesignandholdsaBSinElectricalEngineeringTechnologyaswellasaBSandMSinComputerScience.
Tolearnmore,contactNathanorEricat:EMAC,Inc.
2390EMACWayCarbondale,IL62902Page4of5Printedfromembedded-computing.
com618-529-4525Nathan:ngustavson@emacinc.
comEric:erossi@emacinc.
comwww.
emacinc.
comMMVIIEmbeddedComputingDesign.
AnOpenSystemsPublishing,LLCpublication.
Page5of5Printedfromembedded-computing.
com
极光KVM创立于2018年,主要经营美国洛杉矶CN2机房、CeRaNetworks机房、中国香港CeraNetworks机房、香港CMI机房等产品。其中,洛杉矶提供CN2 GIA、CN2 GT以及常规BGP直连线路接入。从名字也可以看到,VPS产品全部是基于KVM架构的。极光KVM也有明确的更换IP政策,下单时选择“IP保险计划”多支付10块钱,可以在服务周期内免费更换一次IP,当然也可以不选择,...
大硬盘服务器、存储服务器、Chia矿机。RackNerd,2019年末成立的商家,主要提供各类KVM VPS主机、独立服务器和站群服务器等。当前RackNerd正在促销旗下几款美国大硬盘服务器,位于洛杉矶multacom数据中心,亚洲优化线路,非常适合存储、数据备份等应用场景,双路e5-2640v2,64G内存,56G SSD系统盘,160T SAS数据盘,流量是每月200T,1Gbps带宽,配5...
已经有一段时间没有听到Gigsgigscloud服务商的信息,这不今天看到商家有新增一款国际版线路的美国VPS主机,年付也是比较便宜的只需要26美元。线路上是接入Cogentco、NTT、AN2YIX以及其他亚洲Peering。这款方案的VPS主机默认的配置是1Gbps带宽,比较神奇的需要等待手工人工开通激活,不是立即开通的。我们看看这款服务器在哪里选择看到套餐。内存CPUSSD流量价格购买地址1...
ww.38jjj.com为你推荐
杨紫别祝我生日快乐周杰伦的祝我生日快乐这首歌有什么寓意或者是在什么背景下写的bbs.99nets.com怎么打造完美SFbbs.99nets.com做一款即时通讯软件难吗 像hi qq这类的rawtoolsTF卡被写保护了怎么办?www.119mm.com看电影上什么网站??javmoo.com0904-javbo.net_avop210hhb主人公叫什么,好喜欢,有知道的吗125xx.com高手指教下,www.fshxbxg.com这个域名值多少钱?www.baitu.com我看电影网www.5ken.com为什么百度就不上关键字呢www.hyyan.com请问我是HY了吗?在线等www.45gtv.com登录农行网银首页www.abchina.com,
云网数据 adman hawkhost 美国翻墙 godaddy续费优惠码 主机屋免费空间 777te anylink 共享主机 cn3 上海服务器 常州联通宽带 web服务器是什么 1元域名 网站加速软件 云服务器比较 阿里云邮箱申请 卡巴斯基试用版下载 阿里云个人邮箱 阿里云邮箱怎么注册 更多