SlideShare a Scribd company logo
1 of 11
External Use
TM
Exploring SoC Peripherals with
Eclipse™ C/C++ IDE
Eclipse DemoCamp Bucharest, 2014
Valentin Ciocoi
J U L . 0 2 . 2 0 1 4
TM
External Use 1
Agenda
• Overview
• Explore peripherals with CDT Registers View
• Explore peripherals with open source
Embedded System Registers plug-in
• Explore peripherals with your custom plug-in
TM
External Use 2
Overview
• Most embedded devices have peripherals (accelerators, IO interfaces, etc)
that are mapped in global memory address space in the form of memory
mapped registers
• Developers can debug the state of a peripheral by dumping or visualizing the
memory area corresponding to the peripheral
• It can be difficult to decode a memory dump in order to identify the value of a
specific bit-field that caused the peripheral to misbehave
• Eclipse™ C/C++ IDE can be used to enhance the peripheral debugging
experience
TM
External Use 3
Explore peripherals with CDT Registers View
• The standard Eclipse CDT registers view only shows the processor core registers:
general purpose registers, floating point registers and some core state registers.
• Additional registers can be displayed in standard CDT registers view by adding their
description in the GDB target description file.
https://sourceware.org/gdb/onlinedocs/gdb/Target-Descriptions.html#Target-
Descriptions
• The GDB server must be updated to access those registers by reading the
corresponding memory location
CDT
register
details
TM
External Use 4
Explore peripherals with CDT Registers View
• Example:
<feature name="Peripheral1">
<reg name="REG_NAME1" bitsize="32" type="uint32" group="general" regnum="166"/>
<reg name="REG_NAME2" bitsize="32" type="uint32" group="general" regnum="167"/>
</feature>
• Advantages:
− Easy to add/remove register groups as long as GDB server is aware of them
− Common view for displaying all registers: core and peripherals
− Common GDB shell commands for accessing all registers
− Suitable for adding a small set of custom registers
• Disadvantages:
− Support for the additional registers must be present or added in GDB server
− CDT registers view shows all registers retrieved from GDB in a single group
− Not suitable for adding large set of custom registers
− At each target state change (suspend, memory change, etc) GDB will read from target all registers
present in the target description file => this can greatly impact the debugger speed
TM
External Use 5
Explore peripherals with Embedded System Registers
• An open source Eclipse plug-in similar to CDT registers view:
http://sourceforge.net/projects/embsysregview/
• EmbSysRegisters has two plugins: the view itself and a data plugin that contains several device
description XML files for various chips
• The description files come in a custom DTD format or in CMSIS-SVD (System View Description)
format which is the standard introduced by ARM™
http://www.keil.com/pack/doc/CMSIS/SVD/html/index.html
• The view displays peripheral memory mapped registers based on these device XML description files
TM
External Use 6
Explore peripherals with Embedded System Registers
• Installation:
− Use this Eclipse update site http://embsysregview.sourceforge.net/update to install the plugins
• Configuration:
− The data plugin installs XML files describing the devices peripherals in the following folder:
eclipsepluginsorg.eclipse.cdt.embsysregview.data_0.2.4.r168data
− Add your own device description file containing the peripherals you want to explore
• Using the Plugin
− Open the ‘EmbSys Registers’ view (menu Window > Show View > Others > Debug > EmbSys Registers)
− select the device by pressing the settings icon in the view or from menu Window > Preferences > C/C++ > Debug
> EmbSys Registers
− To read the register values from the device, double-click on the register/group (the icon turns green)
• Advantages:
− Open source, easy to install Eclipse plug-in
− Tree-view user interface similar with CDT registers view
− Supports CMSIS-SVD - ARM standard device description format
• Disadvantages:
− GPLv3 license (extending, bug-fixing)
− The values are not automatically loaded – user has to double-click on the registers
− Crowded view – the details are blended in the view – there is no details pane as in CDT view
− Few devices already supported – description file must be added for other devices
− Tree-view is not lazy
TM
External Use 7
Explore peripherals with your custom plug-in
• Example of creating a custom plugin working with CDT-DSF
− The view:
 Create your custom view by sub-classing org.eclipse.ui.part.ViewPart
 Create a jface TreeViewer in the view and set its content provider, label provider and input
− The tree content provider:
 Recommended to be lazy as should be the TreeViewer
 Should listen to DSF session suspend/resume notification in order to update the register values
 Listen to debug context changed platform events to load the peripheral register set
− Accessing target using GDB console and MI commands
 get DSF session from current debug context
 create a DsfServicesTracker for the current session
 Get IMICommandControl from service tracker
 Queue CLI/MI command in the command control service - https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html#GDB_002fMI
TM
External Use 8
Explore peripherals with your custom plug-in
Host PC
Eclipse IDE
CDT-DSF
GDB (client)
Python extensions
GDB Server
Peripheral
SQLite
DB
JDBC
GDB-RSP
GDB-MI
Debug Probe
JTAG
sqlite3
• This is Freescale solution for
exploring peripherals with Eclipse
CDT-DSF.
• Debug usecases:
− Baremetal
− U-boot
− Hypervisor
− Linux™ kernel
TM
External Use 9
References
• https://sourceware.org/gdb/onlinedocs/gdb/Target-
Descriptions.html#Target-Descriptions
• http://sourceforge.net/projects/embsysregview/
• http://www.keil.com/pack/doc/CMSIS/SVD/html/modules.html
• http://en.wikipedia.org/wiki/Document_Type_Definition
TM
© 2014 Freescale Semiconductor, Inc. | External Use
www.Freescale.com

More Related Content

What's hot

はじめる! Redmine (2021年版)
はじめる! Redmine (2021年版) はじめる! Redmine (2021年版)
はじめる! Redmine (2021年版) Go Maeda
 
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Shohei Okada
 
ユーザ要望に応えるView customize活用事例
ユーザ要望に応えるView customize活用事例ユーザ要望に応えるView customize活用事例
ユーザ要望に応えるView customize活用事例Hidehisa Matsutani
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなすonozaty
 
はじめる! Redmine (2017)
 はじめる! Redmine (2017) はじめる! Redmine (2017)
はじめる! Redmine (2017)Go Maeda
 
「伝わるチケット」の書き方
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方onozaty
 
View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)onozaty
 
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装Satoshi Nagayasu
 
Redmineを快適に使うためのおすすめ初期設定
Redmineを快適に使うためのおすすめ初期設定Redmineを快適に使うためのおすすめ初期設定
Redmineを快適に使うためのおすすめ初期設定Go Maeda
 
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
ある工場の Redmine 2021 ( Redmine of one plant 2021 )ある工場の Redmine 2021 ( Redmine of one plant 2021 )
ある工場の Redmine 2021 ( Redmine of one plant 2021 )Kohei Nakamura
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!Kouhei Sutou
 
Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例Go Maeda
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツShunji Konishi
 
Tutorial su JMS (Java Message Service)
Tutorial su JMS (Java Message Service)Tutorial su JMS (Java Message Service)
Tutorial su JMS (Java Message Service)Federico Paparoni
 
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)Kuniharu(州晴) AKAHANE(赤羽根)
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例Yuuki Nara
 
Redis and its Scaling and Obersvability
Redis and its Scaling and ObersvabilityRedis and its Scaling and Obersvability
Redis and its Scaling and ObersvabilityAbhishekDubey902839
 
今さら聞けない! Windows Server 2016 Active Directoryドメインサービス入門
今さら聞けない!Windows Server 2016Active Directoryドメインサービス入門今さら聞けない!Windows Server 2016Active Directoryドメインサービス入門
今さら聞けない! Windows Server 2016 Active Directoryドメインサービス入門Trainocate Japan, Ltd.
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmineGo Maeda
 

What's hot (20)

はじめる! Redmine (2021年版)
はじめる! Redmine (2021年版) はじめる! Redmine (2021年版)
はじめる! Redmine (2021年版)
 
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
 
ユーザ要望に応えるView customize活用事例
ユーザ要望に応えるView customize活用事例ユーザ要望に応えるView customize活用事例
ユーザ要望に応えるView customize活用事例
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなす
 
はじめる! Redmine (2017)
 はじめる! Redmine (2017) はじめる! Redmine (2017)
はじめる! Redmine (2017)
 
「伝わるチケット」の書き方
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方
 
Report apiを支える技術
Report apiを支える技術Report apiを支える技術
Report apiを支える技術
 
View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)
 
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
 
Redmineを快適に使うためのおすすめ初期設定
Redmineを快適に使うためのおすすめ初期設定Redmineを快適に使うためのおすすめ初期設定
Redmineを快適に使うためのおすすめ初期設定
 
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
ある工場の Redmine 2021 ( Redmine of one plant 2021 )ある工場の Redmine 2021 ( Redmine of one plant 2021 )
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
 
Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
Tutorial su JMS (Java Message Service)
Tutorial su JMS (Java Message Service)Tutorial su JMS (Java Message Service)
Tutorial su JMS (Java Message Service)
 
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
情報システム部門のタスク管理とIT全般統制 ~ Excel管理からの脱却 ~ (ITS Redmine #RxTstudy #5)
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例
 
Redis and its Scaling and Obersvability
Redis and its Scaling and ObersvabilityRedis and its Scaling and Obersvability
Redis and its Scaling and Obersvability
 
今さら聞けない! Windows Server 2016 Active Directoryドメインサービス入門
今さら聞けない!Windows Server 2016Active Directoryドメインサービス入門今さら聞けない!Windows Server 2016Active Directoryドメインサービス入門
今さら聞けない! Windows Server 2016 Active Directoryドメインサービス入門
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmine
 

Similar to Exploring SoC Peripherals with Eclipse C/C++ IDE

Whats new in CDT in Mars Release
Whats new in CDT in Mars ReleaseWhats new in CDT in Mars Release
Whats new in CDT in Mars ReleaseTeodor Madan
 
Flexible DevOps Deployment of Enterprise Test Environments in the Cloud
Flexible DevOps Deployment of Enterprise Test Environments in the CloudFlexible DevOps Deployment of Enterprise Test Environments in the Cloud
Flexible DevOps Deployment of Enterprise Test Environments in the CloudDevOps for Enterprise Systems
 
Whats new in CDT in Luna Release,
Whats new in CDT in Luna Release,Whats new in CDT in Luna Release,
Whats new in CDT in Luna Release,Teodor Madan
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyBenjamin Zores
 
CDI debugger for embedded C/C+
CDI debugger for embedded C/C+CDI debugger for embedded C/C+
CDI debugger for embedded C/C+Teodor Madan
 
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...Arti Parab Academics
 
Ch1Ch2Sept10.pdf
Ch1Ch2Sept10.pdfCh1Ch2Sept10.pdf
Ch1Ch2Sept10.pdfSamSami69
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...melbats
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux DevelopersOpersys inc.
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseNetSPI
 
Performance and Power Profiling on Intel Android Devices
Performance and Power Profiling on Intel Android DevicesPerformance and Power Profiling on Intel Android Devices
Performance and Power Profiling on Intel Android DevicesIntel® Software
 
Windows Operating System.pptx
Windows Operating System.pptxWindows Operating System.pptx
Windows Operating System.pptxOnyemaobiAmarachi
 
Using the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with SubversionUsing the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with SubversionDebbie Wilson
 

Similar to Exploring SoC Peripherals with Eclipse C/C++ IDE (20)

Whats new in CDT in Mars Release
Whats new in CDT in Mars ReleaseWhats new in CDT in Mars Release
Whats new in CDT in Mars Release
 
Flexible DevOps Deployment of Enterprise Test Environments in the Cloud
Flexible DevOps Deployment of Enterprise Test Environments in the CloudFlexible DevOps Deployment of Enterprise Test Environments in the Cloud
Flexible DevOps Deployment of Enterprise Test Environments in the Cloud
 
Whats new in CDT in Luna Release,
Whats new in CDT in Luna Release,Whats new in CDT in Luna Release,
Whats new in CDT in Luna Release,
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
 
CDI debugger for embedded C/C+
CDI debugger for embedded C/C+CDI debugger for embedded C/C+
CDI debugger for embedded C/C+
 
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
 
E.s unit 6
E.s unit 6E.s unit 6
E.s unit 6
 
Ch1Ch2Sept10.pdf
Ch1Ch2Sept10.pdfCh1Ch2Sept10.pdf
Ch1Ch2Sept10.pdf
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
STM -32
STM -32STM -32
STM -32
 
learning STM -32
learning STM -32 learning STM -32
learning STM -32
 
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Thick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash CourseThick Application Penetration Testing - A Crash Course
Thick Application Penetration Testing - A Crash Course
 
Readme
ReadmeReadme
Readme
 
Performance and Power Profiling on Intel Android Devices
Performance and Power Profiling on Intel Android DevicesPerformance and Power Profiling on Intel Android Devices
Performance and Power Profiling on Intel Android Devices
 
CA_Module_3.pptx
CA_Module_3.pptxCA_Module_3.pptx
CA_Module_3.pptx
 
Windows Operating System.pptx
Windows Operating System.pptxWindows Operating System.pptx
Windows Operating System.pptx
 
Using the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with SubversionUsing the Corporate Geographic Data Model with Subversion
Using the Corporate Geographic Data Model with Subversion
 

Recently uploaded

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

Exploring SoC Peripherals with Eclipse C/C++ IDE

  • 1. External Use TM Exploring SoC Peripherals with Eclipse™ C/C++ IDE Eclipse DemoCamp Bucharest, 2014 Valentin Ciocoi J U L . 0 2 . 2 0 1 4
  • 2. TM External Use 1 Agenda • Overview • Explore peripherals with CDT Registers View • Explore peripherals with open source Embedded System Registers plug-in • Explore peripherals with your custom plug-in
  • 3. TM External Use 2 Overview • Most embedded devices have peripherals (accelerators, IO interfaces, etc) that are mapped in global memory address space in the form of memory mapped registers • Developers can debug the state of a peripheral by dumping or visualizing the memory area corresponding to the peripheral • It can be difficult to decode a memory dump in order to identify the value of a specific bit-field that caused the peripheral to misbehave • Eclipse™ C/C++ IDE can be used to enhance the peripheral debugging experience
  • 4. TM External Use 3 Explore peripherals with CDT Registers View • The standard Eclipse CDT registers view only shows the processor core registers: general purpose registers, floating point registers and some core state registers. • Additional registers can be displayed in standard CDT registers view by adding their description in the GDB target description file. https://sourceware.org/gdb/onlinedocs/gdb/Target-Descriptions.html#Target- Descriptions • The GDB server must be updated to access those registers by reading the corresponding memory location CDT register details
  • 5. TM External Use 4 Explore peripherals with CDT Registers View • Example: <feature name="Peripheral1"> <reg name="REG_NAME1" bitsize="32" type="uint32" group="general" regnum="166"/> <reg name="REG_NAME2" bitsize="32" type="uint32" group="general" regnum="167"/> </feature> • Advantages: − Easy to add/remove register groups as long as GDB server is aware of them − Common view for displaying all registers: core and peripherals − Common GDB shell commands for accessing all registers − Suitable for adding a small set of custom registers • Disadvantages: − Support for the additional registers must be present or added in GDB server − CDT registers view shows all registers retrieved from GDB in a single group − Not suitable for adding large set of custom registers − At each target state change (suspend, memory change, etc) GDB will read from target all registers present in the target description file => this can greatly impact the debugger speed
  • 6. TM External Use 5 Explore peripherals with Embedded System Registers • An open source Eclipse plug-in similar to CDT registers view: http://sourceforge.net/projects/embsysregview/ • EmbSysRegisters has two plugins: the view itself and a data plugin that contains several device description XML files for various chips • The description files come in a custom DTD format or in CMSIS-SVD (System View Description) format which is the standard introduced by ARM™ http://www.keil.com/pack/doc/CMSIS/SVD/html/index.html • The view displays peripheral memory mapped registers based on these device XML description files
  • 7. TM External Use 6 Explore peripherals with Embedded System Registers • Installation: − Use this Eclipse update site http://embsysregview.sourceforge.net/update to install the plugins • Configuration: − The data plugin installs XML files describing the devices peripherals in the following folder: eclipsepluginsorg.eclipse.cdt.embsysregview.data_0.2.4.r168data − Add your own device description file containing the peripherals you want to explore • Using the Plugin − Open the ‘EmbSys Registers’ view (menu Window > Show View > Others > Debug > EmbSys Registers) − select the device by pressing the settings icon in the view or from menu Window > Preferences > C/C++ > Debug > EmbSys Registers − To read the register values from the device, double-click on the register/group (the icon turns green) • Advantages: − Open source, easy to install Eclipse plug-in − Tree-view user interface similar with CDT registers view − Supports CMSIS-SVD - ARM standard device description format • Disadvantages: − GPLv3 license (extending, bug-fixing) − The values are not automatically loaded – user has to double-click on the registers − Crowded view – the details are blended in the view – there is no details pane as in CDT view − Few devices already supported – description file must be added for other devices − Tree-view is not lazy
  • 8. TM External Use 7 Explore peripherals with your custom plug-in • Example of creating a custom plugin working with CDT-DSF − The view:  Create your custom view by sub-classing org.eclipse.ui.part.ViewPart  Create a jface TreeViewer in the view and set its content provider, label provider and input − The tree content provider:  Recommended to be lazy as should be the TreeViewer  Should listen to DSF session suspend/resume notification in order to update the register values  Listen to debug context changed platform events to load the peripheral register set − Accessing target using GDB console and MI commands  get DSF session from current debug context  create a DsfServicesTracker for the current session  Get IMICommandControl from service tracker  Queue CLI/MI command in the command control service - https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html#GDB_002fMI
  • 9. TM External Use 8 Explore peripherals with your custom plug-in Host PC Eclipse IDE CDT-DSF GDB (client) Python extensions GDB Server Peripheral SQLite DB JDBC GDB-RSP GDB-MI Debug Probe JTAG sqlite3 • This is Freescale solution for exploring peripherals with Eclipse CDT-DSF. • Debug usecases: − Baremetal − U-boot − Hypervisor − Linux™ kernel
  • 10. TM External Use 9 References • https://sourceware.org/gdb/onlinedocs/gdb/Target- Descriptions.html#Target-Descriptions • http://sourceforge.net/projects/embsysregview/ • http://www.keil.com/pack/doc/CMSIS/SVD/html/modules.html • http://en.wikipedia.org/wiki/Document_Type_Definition
  • 11. TM © 2014 Freescale Semiconductor, Inc. | External Use www.Freescale.com