Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SEGGER Real Time Transfer

SEGGER's Real Time Transfer (RTT) is the proven technology for system monitoring and interactive user I/O in embedded applications. It combines the advantages of SWO and semihosting at very high performance.

For more information refer to

Usage

This package contains the RTT Target Sources. It can be used directly, either by including the Git Repository as a submodule, or by Download of the latest package, or as an CMSIS-Pack in CMSIS development tools.

General Usage and Configuration

To include RTT into a project, add RTT/SEGGER_RTT.c to the project sources and RTT as include directory.

RTT/SEGGER_RTT_ASM_ARMv7M.S is optional and can be added as additional source file for an assembly-optimized implementation of RTT functions. This file is compatible with ARMv7M and ARMv8M processors and most toolchains.

RTT can be configured through SEGGER_RTT_Conf.h. In most cases the default configuration is sufficient and SEGGER_RTT_Conf.h can be left untouched. In this case, Config can be added as include directory. If additional configuration is required, it is recommended to copy SEGGER_RTT_Conf.h to the project's configuration directory and make changes to the copy. That way, configuration does not get overwritten by an update of the package. In that case, do not add Config as include directory.

Additional Modules

The RTT Target Sources contain additional modules for printf-like output.

SEGGER_RTT_Printf.c provides a simple implementation of "printf" to write formatted strings directly via RTT.

Syscalls/SEGGER_RTT_Syscalls_*.c provides low-level retargeting functions for printf() to RTT with different toolchains.

Examples

The Examples dirctory includes some simple example and test applications to demonstrate RTT. Some examples can be run as bare-metal applications, some examples require additional modules, such as an RTOS.

  • Main_RTT_InputEchoApp.c - Example application which echoes input on Channel 0.
  • Main_RTT_MenuApp.c - Example application to demonstrate RTT bi-directional functionality.
  • Main_RTT_PrintfTest.c - Example application to test RTT's simple printf implementation.
  • Main_RTT_SpeedTestApp.c - Example application to measure RTT performance. (Requires embOS)

NOTE: The examples are not included in the CMSIS-Pack.

CMSIS-Pack

The CMSIS-Pack enables easy integration of RTT into CMSIS-based projects.

To use RTT in a csolution project add pack: SEGGER::RTT and component: SEGGER:RTT. The RTE directory is the project's config directory and contains the local copy of SEGGER_RTT_Conf.h for additional configuration.

About

SEGGER RTT Sources

Resources

Stars

242 stars

Watchers

9 watching

Forks

Releases

Contributors

Languages