| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| |
| <!-- This is broken by doc revisioning. |
| --> |
| <link rel="shortcut icon" href="../../../../img/favicon.ico"> |
| |
| <title>Validation and Error Messages - Apache Mynewt</title> |
| |
| <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet"> |
| <link rel="stylesheet" href="../../../../css/highlight.css"> |
| <link href="../../../../css/base.css" rel="stylesheet"> |
| <link href="../../../../css/custom.css" rel="stylesheet"> |
| <link href="../../../../css/v2.css" rel="stylesheet"> |
| <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet"> |
| <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> |
| |
| <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> |
| <!--[if lt IE 9]> |
| <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> |
| <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> |
| <![endif]--> |
| |
| |
| <script> |
| (function(i, s, o, g, r, a, m) { |
| i["GoogleAnalyticsObject"] = r; |
| (i[r] = |
| i[r] || |
| function() { |
| (i[r].q = i[r].q || []).push(arguments); |
| }), |
| (i[r].l = 1 * new Date()); |
| (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]); |
| a.async = 1; |
| a.src = g; |
| m.parentNode.insertBefore(a, m); |
| })(window, document, "script", "//www.google-analytics.com/analytics.js", "ga"); |
| |
| ga("create", "UA-72162311-1", "auto"); |
| ga("send", "pageview"); |
| </script> |
| |
| </head> |
| |
| |
| <body class="Validation and Error Messages"> |
| |
| |
| <div class="container"> |
| <div class="row v2-main-banner"> |
| <a class="logo-cell" href="/"> |
| <img class="logo" src="/img/logo.png"> |
| </a> |
| <div class="tagline-cell"> |
| <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4> |
| </div> |
| <div class="news-cell"> |
| <div class="well"> |
| <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024) |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| |
| |
| |
| |
| |
| |
| <nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation"> |
| <div class="container"> |
| <!-- Collapsed navigation --> |
| <div class="navbar-header"> |
| <!-- Expander button --> |
| <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| |
| </div> |
| |
| <!-- Expanded navigation --> |
| <div class="navbar-collapse collapse"> |
| <!-- Main navigation --> |
| <ul class="nav navbar-nav navbar-right"> |
| <li |
| class="" |
| > |
| <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a> |
| </li> |
| <li |
| class="important" |
| > |
| <a href="/quick-start/">Quick Start</a> |
| </li> |
| <li |
| class="" |
| > |
| <a href="/about/">About</a> |
| </li> |
| <li |
| class="" |
| > |
| <a href="/talks/">Talks</a> |
| </li> |
| <li |
| class="active" |
| > |
| <a href="/documentation/">Documentation</a> |
| </li> |
| <li |
| class="" |
| > |
| <a href="/download/">Download</a> |
| </li> |
| <li |
| class="" |
| > |
| <a href="/community/">Community</a> |
| </li> |
| <li |
| class="" |
| > |
| <a href="/events/">Events</a> |
| </li> |
| </ul> |
| |
| </div> |
| </div> |
| </nav> |
| |
| |
| |
| <div class="container"> |
| |
| <div class="row"> |
| <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary"> |
| <div class="top"> |
| <div role="search"> |
| <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get"> |
| <div class="form-group"> |
| <input type="text" name="q" class="form-control" placeholder="Search documentation" /> |
| </div> |
| </form> |
| </div> |
| </div> |
| <ul class="toc-nav"> |
| <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value"> |
| <option value="/latest"> |
| Version: master |
| </option> |
| <option value="/v1_12_0/" > |
| Version: 1.12.0 |
| </option> |
| <option value="/v1_11_0/" > |
| Version: 1.11.0 |
| </option> |
| <option value="/v1_10_0/" > |
| Version: 1.10.0 |
| </option> |
| <option value="/v1_9_0/" > |
| Version: 1.9.0 |
| </option> |
| <option value="/v1_8_0/" > |
| Version: 1.8.0 |
| </option> |
| <option value="/v1_7_0/" > |
| Version: 1.7.0 |
| </option> |
| <option value="/v1_6_0/" > |
| Version: 1.6.0 |
| </option> |
| <option value="/v1_5_0/" > |
| Version: 1.5.0 |
| </option> |
| <option value="/v1_4_0/" > |
| Version: 1.4.0 |
| </option> |
| <option value="/v1_3_0/os/introduction" > |
| Version: 1.3.0 |
| </option> |
| <option value="/v1_2_0/os/introduction" > |
| Version: 1.2.0 |
| </option> |
| <option value="/v1_1_0/os/introduction" > |
| Version: 1.1.0 |
| </option> |
| <option value="/v1_0_0/os/introduction" selected="selected" > |
| Version: 1.0.0 |
| </option> |
| <option value="/v0_9_0/os/introduction" > |
| Version: 0.9.0 |
| </option> |
| </select></li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../introduction/">Mynewt Documentation</a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../get_started/get_started/">Basic Setup</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| <li > |
| <a href="../../../get_started/vocabulary/">Concepts</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../tutorials/tutorials/">Tutorials</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../os_user_guide/">OS User Guide</a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../core_os/mynewt_os/">OS Core</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../core_os/porting/port_os/">Porting to your Platform</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../console/console/">Console</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../shell/shell/">Shell</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../split/split/">Split Images</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../bootloader/bootloader/">Bootloader</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li><a href=" |
| |
| |
| ../../fs/fs/fs/ |
| |
| ">File System</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../hal/hal/">Hardware Abstraction Layer</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../drivers/driver/">Drivers</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../testutil/testutil/">Test Utilities</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../devmgmt/newtmgr/">Device Management with Newt Manager</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../imgmgr/imgmgr/">Image Manager</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| <li > |
| <a href="../../baselibc/">Baselibc library</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../json/json/">JSON</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../fcb/fcb/">Flash Circular Buffer</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../stats/stats/">Stats</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../logs/logs/">Logs</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../sysinitconfig/">System Configuration And Initialization</a> |
| |
| |
| <ul> |
| |
| |
| |
| |
| |
| <li class="active"> |
| <a href="./">Validation and Error Messages</a> |
| </li> |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li><a href=" |
| ../../../../network/ble/ble_intro/ |
| ">BLE User Guide</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../../newt/newt_intro/">Newt Tool Guide</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li ><a href="../../../../newtmgr/overview/">Newt Manager Guide</a> |
| |
| |
| </li> |
| |
| |
| |
| |
| |
| <li > |
| <a href="../../../../known_issues/">Known Issues</a> |
| </li> |
| |
| |
| |
| </ul> |
| |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| <li><a href=" |
| ../../../../faq/go_env/ |
| ">Appendix</a> |
| |
| |
| </li> |
| |
| |
| |
| </ul> |
| </div></div> |
| |
| <div class="col-md-9" role="main"> |
| <div class="doc-header"> |
| <div role="navigation" aria-label="breadcrumbs navigation"> |
| <ul class="wy-breadcrumbs"> |
| <li><a href="/documentation/">Docs</a></li> |
| |
| |
| |
| <li>» <a href="os/modules/sysinitconfig/sysinitconfig/">System Configuration And Initialization</a></li> |
| |
| |
| |
| <li>» <a href="os/os_user_guide/">OS User Guide</a></li> |
| |
| |
| |
| <li>» <a href="os/introduction/">Mynewt Documentation</a></li> |
| |
| |
| |
| <li>» Validation and Error Messages</li> |
| |
| |
| |
| </ul> |
| </div> |
| </div> |
| |
| |
| |
| |
| |
| |
| <div class="alert alert-warning"> |
| <p> |
| Version 1.0.0 is not the most recent version of the Apache Mynewt |
| documentation. Click <a href="/latest">here</a> to read the latest |
| version. |
| </p> |
| </div> |
| |
| |
| |
| <h2 id="validation-and-error-messages">Validation and Error Messages</h2> |
| <p>With multiple packages defining and overriding system configuration settings, it |
| is easy to introduce conflicts and violations that are difficult to find. The |
| <code>newt build <target-name></code> command validates the setting definitions and value |
| overrides for all the packages in the target to ensure a valid and consistent build. |
| It aborts the build when it detects violations or ambiguities between packages.<br /> |
| The following sections describe the error conditions that newt detects and |
| the error messages that it outputs. For most errors, newt also outputs |
| the <code>Setting history</code> with the order of package overrides to help |
| you resolve the errors.</p> |
| <p><strong>Note:</strong> The <code>newt target config <target-name></code> command also detects |
| errors and outputs error messages at the top of the command output. |
| The command outputs the package setting definitions and values after it |
| outputs the error messages. It is easy to miss the error messages at the top. </p> |
| <h3 id="value-override-violations">Value Override Violations</h3> |
| <p>The newt tool uses package priorities to resolve override conflicts. It uses |
| the value override from the highest priority package when multiple |
| packages override the same setting. Newt checks for the following |
| override violations:</p> |
| <ul> |
| <li>Ambiguity Violation - Two packages of the same priority override a setting with |
| different values. And no higher priority package overrides the setting.</li> |
| <li>Priority Violation - A package overrides a setting defined by a package with higher or |
| equal priority. </li> |
| </ul> |
| <h4 id="example-ambiguity-violation-error-message">Example: Ambiguity Violation Error Message</h4> |
| <p>The following example shows the error message that newt outputs for an ambiguity violation:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: Syscfg ambiguities detected: |
| Setting: LOG_NEWTMGR, Packages: [apps/slinky, apps/splitty] |
| Setting history (newest -> oldest): |
| LOG_NEWTMGR: [apps/splitty:0, apps/slinky:1, sys/log/full:0] |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>apps/slinky</code> and <code>apps/splitty</code> packages |
| in the split image target both override the same setting with different |
| values. The <code>apps/slinky</code> package sets the <code>sys/log/full</code> package <code>LOG_NEWTMGR</code> |
| setting to 1, and the <code>apps/splitty</code> package sets the setting to 0. The |
| overrides are ambiguous because both are <code>app</code> packages and |
| have the same priority. The following are excerpts of the defintion |
| and the two overrides from the <code>syscfg.yml</code> files that cause the error:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>#Package: sys/log/full |
| syscfg.defs: |
| LOG_NEWTMGR: |
| description: 'Enables or disables newtmgr command tool logging' |
| value: 0 |
| |
| #Package: apps/slinky |
| syscfg.vals: |
| LOG_NEWTMGR: 1 |
| |
| #Package: apps/splitty |
| syscfg.vals: |
| LOG_NEWTMGR: 0 |
| </code></pre></div> |
| |
| <h4 id="example-priority-violation-error-message">Example: Priority Violation Error Message</h4> |
| <p>The following example shows the error message that newt outputs for a priority violation |
| where a package tries to change the setting that was defined by another package at |
| the same priority level:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: Priority violations detected (Packages can only override settings defined by packages of lower priority): |
| Package: mgmt/newtmgr overriding setting: LOG_NEWTMGR defined by sys/log/full |
| |
| Setting history (newest -> oldest): |
| LOG_NEWTMGR: [sys/log/full:0] |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>mgmt/newtmgr</code> lib package |
| overrides the <code>LOG_NEWTMGR</code> setting that the <code>sys/log/full</code> lib package |
| defines. The following are excerpts of the definition and the override from the |
| <code>syscfg.yml</code> files that cause this error: </p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>#Package: sys/log/full |
| syscfg.defs: |
| LOG_NEWTMGR: |
| description: 'Enables or disables newtmgr command tool logging' |
| value: 0 |
| |
| #Package: mgmt/newtmgr |
| syscfg.vals: |
| LOG_NEWTMGR: 1 |
| </code></pre></div> |
| |
| <p><br></p> |
| <h3 id="flash-area-violations">Flash Area Violations</h3> |
| <p>For <code>flash_owner</code> type setting definitions, newt checks |
| for the following violations:</p> |
| <ul> |
| <li>An undefined flash area is assigned to a setting.</li> |
| <li>A flash area is assigned to multiple settings.</li> |
| </ul> |
| <h4 id="example-undefined-flash-area-error-message">Example: Undefined Flash Area Error Message</h4> |
| <p>The following example shows the error message that newt outputs for an undefined flash area.</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Building target targets/sim_slinky |
| Error: Flash errors detected: |
| Setting REBOOT_LOG_FLASH_AREA specifies unknown flash area: FLASH_AREA_NOEXIST |
| |
| Setting history (newest -> oldest): |
| REBOOT_LOG_FLASH_AREA: [hw/bsp/native:FLASH_AREA_NOEXIST, sys/reboot:] |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>hw/bsp/native</code> package assigns the |
| undefined <code>FLASH_AREA_NOEXIST</code> flash area to the <code>sys/reboot</code> package |
| <code>REBOOT_LOG_FLASH_AREA</code> setting. The following are excerpts of the definition |
| and the override from the <code>syscfg.yml</code> files that cause the error:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>#Package: sys/reboot |
| syscfg.defs: |
| REBOOT_LOG_FLASH_AREA: |
| description: 'Flash Area to use for reboot log.' |
| type: flash_owner |
| value: |
| |
| #Package: hw/bsp/native |
| syscfg.vals: |
| REBOOT_LOG_FLASH_AREA: FLASH_AREA_NOEXIST |
| </code></pre></div> |
| |
| <h4 id="example-multiple-flash-area-assignment-error-message">Example: Multiple Flash Area Assignment Error Message</h4> |
| <p>The following example shows the error message that newt outputs when multiple |
| settings are assigned the same flash area:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: Flash errors detected: |
| Multiple flash_owner settings specify the same flash area |
| settings: REBOOT_LOG_FLASH_AREA, CONFIG_FCB_FLASH_AREA |
| flash area: FLASH_AREA_NFFS |
| |
| Setting history (newest -> oldest): |
| CONFIG_FCB_FLASH_AREA: [hw/bsp/native:FLASH_AREA_NFFS, sys/config:] |
| REBOOT_LOG_FLASH_AREA: [apps/slinky:FLASH_AREA_NFFS, sys/reboot:] |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>hw/bsp/native</code> package assigns |
| the <code>FLASH_AREA_NFFS</code> flash area to the <code>sys/config/</code> package |
| <code>CONFIG_FCB_FLASH_AREA</code> setting, and the <code>apps/slinky</code> package |
| also assigns <code>FLASH_AREA_NFFS</code> to the <code>sys/reboot</code> package |
| <code>REBOOT_LOG_FLASH_AREA</code> setting. The following are excerpts of the |
| two definitions and the two overrides from the <code>syscfg.yml</code> files |
| that cause the error:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code># Package: sys/config |
| syscfg.defs.CONFIG_FCB: |
| CONFIG_FCB_FLASH_AREA: |
| description: 'The flash area for the Config Flash Circular Buffer' |
| type: 'flash_owner' |
| value: |
| |
| # Package: sys/reboot |
| syscfg.defs: |
| REBOOT_LOG_FLASH_AREA: |
| description: 'The flash area for the reboot log' |
| type: 'flash_owner' |
| value: |
| |
| #Package: hw/bsp/native |
| syscfg.vals: |
| CONFIG_FCB_FLASH_AREA: FLASH_AREA_NFFS |
| |
| #Package: apps/slinky |
| syscfg.vals: |
| REBOOT_LOG_FLASH_AREA: FLASH_AREA_NFFS |
| </code></pre></div> |
| |
| <p><br></p> |
| <h3 id="restriction-violations">Restriction Violations</h3> |
| <p>For setting definitions with <code>restrictions</code> specified, newt checks for |
| the following violations:</p> |
| <ul> |
| <li>A setting with a <code>$notnull</code> restriction does not have a value. </li> |
| <li>For a setting with expression restrictions, some required setting |
| values in the expressions evaluate to false. </li> |
| </ul> |
| <h4 id="example-notnull-restriction-violation-error-message">Example: $notnull Restriction Violation Error Message</h4> |
| <p>The following example shows the error message that newt outputs when |
| a setting with <code>$notnull</code> restriction does not have a value:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: Syscfg restriction violations detected: |
| NFFS_FLASH_AREA must not be null |
| |
| Setting history (newest -> oldest): |
| NFFS_FLASH_AREA: [fs/nffs:] |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>fs/nffs</code> package defines the <code>NFFS_FLASH_AREA</code> |
| setting with a <code>$notnull</code> restriction and no packages override the setting. The |
| following is an excerpt of the definition in the <code>syscfg.yml</code> file that causes the error:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>#Package: fs/nffs |
| syscfg.defs: |
| NFFS_FLASH_AREA: |
| description: 'The flash area to use for the Newtron Flash File System' |
| type: flash_owner |
| value: |
| restrictions: |
| - $notnull |
| </code></pre></div> |
| |
| <h4 id="example-expression-restriction-violation-error-message">Example: Expression Restriction Violation Error Message</h4> |
| <p>The following example shows the error message that newt outputs for |
| an expression restriction violation:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: Syscfg restriction violations detected: |
| CONFIG_FCB=1 requires CONFIG_FCB_FLASH_AREA be set, but CONFIG_FCB_FLASH_AREA= |
| |
| Setting history (newest -> oldest): |
| CONFIG_FCB: [targets/sim_slinky:1, sys/config:0] |
| CONFIG_FCB_FLASH_AREA: [sys/config:] |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>sys/config</code> package defines the <code>CONFIG_FCB</code> setting with |
| a restriction that when set, requires that the <code>CONFIG_FCB_FLASH_AREA</code> setting must |
| also be set. The following are excerpts of the definition and the override from the <code>syscfg.yml</code> |
| files that cause the error:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code># Package: sys/config |
| syscfg.defs: |
| CONFIG_FCB: |
| description: 'Uses Config Flash Circular Buffer' |
| value: 0 |
| restrictions: |
| - '!CONFIG_NFFS' |
| - 'CONFIG_FCB_FLASH_AREA' |
| |
| # Package: targets/sim_slinky |
| syscfg.vals: |
| CONFIG_FCB: 1 |
| </code></pre></div> |
| |
| <p><br></p> |
| <h3 id="task-priority-violations">Task Priority Violations</h3> |
| <p>For <code>task_priority</code> type setting definitions, newt checks for the following violations:</p> |
| <ul> |
| <li>A task priority number is assigned to multiple settings. </li> |
| <li>The task priority number is greater than 239.</li> |
| </ul> |
| <h4 id="example-duplicate-task-priority-assignment-error-message">Example: Duplicate Task Priority Assignment Error Message</h4> |
| <p>The following example shows the error message that newt outputs when |
| a task priority number is assigned to multiple settings.</p> |
| <p><strong>Note:</strong> The settings used in this example are not actual <code>apps/slinky</code> and <code>sys/shell</code> settings. |
| These settings are created for this example because currently only one Mynewt package |
| defines a <code>task_priority</code> type setting. </p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: duplicate priority value: setting1=SHELL_TASK_PRIORITY setting2=SLINKY_TASK_PRIORITY pkg1=apps/slinky pkg2=sys/shell value=1 |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>apps/slinky</code> package defines a <code>SLINKY_TASK_PRIORITY</code> |
| setting with a default task priority of 1 and the <code>sys/shell</code> package also defines a |
| <code>SHELL_TASK_PRIORITY</code> setting with a default task priority of 1.</p> |
| <h4 id="example-invalid-task-priority-error-message">Example: Invalid Task Priority Error Message</h4> |
| <p>The following example shows the error message that newt outputs when |
| a setting is assigned an invalid task priority value:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: invalid priority value: value too great (> 239); setting=SLINKY_TASK_PRIORITY value=240 pkg=apps/slinky |
| </code></pre></div> |
| |
| <p>The above error occurs because the <code>apps/slinky</code> package defines the <code>SLINKY_TASK_PRIORITY</code> setting |
| with 240 for the default task priority value. </p> |
| <p><strong>Note:</strong> Newt does not output the <code>Setting history</code> with task priority violation error messages. </p> |
| <p><br></p> |
| <h3 id="duplicate-system-configuration-setting-definition">Duplicate System Configuration Setting Definition</h3> |
| <p>A setting definition must be unique. Newt checks that only one package in the |
| target defines a setting. The following example shows the error message that newt |
| outputs when multiple packages define the <code>LOG_NEWTMGR</code> setting:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>Error: setting LOG_NEWTMGR redefined |
| </code></pre></div> |
| |
| <p><strong>Note:</strong> Newt does not output the <code>Setting history</code> with duplicate setting error messages. |
| <br></p> |
| <h3 id="override-of-undefined-system-configuration-setting">Override of Undefined System Configuration Setting</h3> |
| <p>The <code>newt build</code> command ignores overrides of undefined system configuration settings. The command does not print a warning when you run it with the default log level. If you override a setting and the value is not assigned to the setting, you may have misspelled the setting name or a package no longer defines the setting. You have two options to troubleshoot this problem:</p> |
| <ul> |
| <li>Run the <code>newt target config show</code> command to see the configuration setting definitions and overrides.</li> |
| <li>Run the <code>newt build -ldebug</code> command to build your target with DEBUG log level. </li> |
| </ul> |
| <p>Note: The <code>newt build -ldebug</code> command generates lots of output and we recommend that you use the <code>newt target config show</code> command option. |
| <br></p> |
| <h4 id="example-ignoring-override-of-undefined-setting-message">Example: Ignoring Override of Undefined Setting Message</h4> |
| <p>The following example shows that the <code>apps/slinky</code> application overrides the <code>LOG_NEWTMGR</code> setting but omits the <strong>T</strong> as an example of an error and overrides the misspelled <strong>LOG_NEWMGR</strong> setting. Here is an excerpt from its <code>syscfg.yml</code> file: </p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>#package: apps/slinky |
| syscfg.vals: |
| # Enable the shell task. |
| SHELL_TASK: 1 |
| ... |
| |
| # Enable newtmgr commands. |
| STATS_NEWTMGR: 1 |
| LOG_NEWMGR: 1 |
| </code></pre></div> |
| |
| <p><br> |
| The <code>newt target config show slinky_sim</code> command outputs the following WARNING message:</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>2017/02/18 17:19:12.119 [WARNING] Ignoring override of undefined settings: |
| 2017/02/18 17:19:12.119 [WARNING] LOG_NEWMGR |
| 2017/02/18 17:19:12.119 [WARNING] NFFS_FLASH_AREA |
| 2017/02/18 17:19:12.119 [WARNING] Setting history (newest -> oldest): |
| 2017/02/18 17:19:12.119 [WARNING] LOG_NEWMGR: [apps/slinky:1] |
| 2017/02/18 17:19:12.119 [WARNING] NFFS_FLASH_AREA: [hw/bsp/native:FLASH_AREA_NFFS] |
| </code></pre></div> |
| |
| <p><br></p> |
| <p>The <code>newt build -ldebug slinky_sim</code> command outputs the following DEBUG message: </p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>2017/02/18 17:06:21.451 [DEBUG] Ignoring override of undefined settings: |
| 2017/02/18 17:06:21.451 [DEBUG] LOG_NEWMGR |
| 2017/02/18 17:06:21.451 [DEBUG] NFFS_FLASH_AREA |
| 2017/02/18 17:06:21.451 [DEBUG] Setting history (newest -> oldest): |
| 2017/02/18 17:06:21.451 [DEBUG] LOG_NEWMGR: [apps/slinky:1] |
| 2017/02/18 17:06:21.451 [DEBUG] NFFS_FLASH_AREA: [hw/bsp/native:FLASH_AREA_NFFS] |
| </code></pre></div> |
| |
| <p><br></p> |
| <h4 id="bsp-package-overrides-undefined-configuration-settings">BSP Package Overrides Undefined Configuration Settings</h4> |
| <p>You might see a warning that indicates your application's BSP package is overriding some undefined settings. As you can see from the previous example, the WARNING message shows that the <code>hw/bsp/native</code> package is overriding the undefined <code>NFFS_FLASH_AREA</code> setting. This is not an error because of the way a BSP package defines and assigns its flash areas to packages that use flash memory.</p> |
| <p>A BSP package defines, in its <code>bsp.yml</code> file, a flash area map of the flash areas on the board. A package that uses flash memory must define a flash area configuration setting name. The BSP package overrides the package's flash area setting with one of the flash areas from its flash area map. A BSP package overrides the flash area settings for all packages that use flash memory because it does not know the packages that an application uses. When an application does not include one of these packages, the flash area setting for the package is undefined. You will see a message that indicates the BSP package overrides this undefined setting.</p> |
| <p>Here are excerpts from the <code>hw/bsp/native</code> package's <code>bsp.yml</code> and <code>syscfg.yml</code> files for the <code>slinky_sim</code> target. The BSP package defines the flash area map in its <code>bsp.yml</code> file and overrides the flash area settings for all packages in its <code>syscfg.yml</code> file. The <code>slinky_sim</code> target does not use the <code>fs/nffs</code> package which defines the <code>NFFS_FLASH_AREA</code> setting. Newt warns that the <code>hw/bsp/native</code> packages overrides the undefined <code>NFFS_FLASH_AREA</code> setting.</p> |
| <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code># hw/bsp/native bsp.yml |
| bsp.flash_map: |
| areas: |
| # System areas. |
| FLASH_AREA_BOOTLOADER: |
| device: 0 |
| offset: 0x00000000 |
| size: 16kB |
| |
| ... |
| |
| FLASH_AREA_IMAGE_SCRATCH: |
| device: 0 |
| offset: 0x000e0000 |
| size: 128kB |
| |
| # User areas. |
| FLASH_AREA_REBOOT_LOG: |
| user_id: 0 |
| device: 0 |
| offset: 0x00004000 |
| size: 16kB |
| FLASH_AREA_NFFS: |
| user_id: 1 |
| device: 0 |
| offset: 0x00008000 |
| |
| # hw/bsp/native syscfg.yml |
| syscfg.vals: |
| NFFS_FLASH_AREA: FLASH_AREA_NFFS |
| CONFIG_FCB_FLASH_AREA: FLASH_AREA_NFFS |
| REBOOT_LOG_FLASH_AREA: FLASH_AREA_REBOOT_LOG |
| </code></pre></div> |
| |
| <div class="row"> |
| |
| |
| |
| |
| <ul class="nav nav-pills" style="margin-bottom: 10px"> |
| <li> |
| |
| </li> |
| <li class="pull-right"> |
| |
| </li> |
| </ul> |
| </div> |
| <footer class="row"> |
| <div class="col-xs-12"> |
| |
| <p class="copyright">Apache Mynewt (incubating) is available under Apache License, version 2.0.</p> |
| |
| </div> |
| <div class="col-xs-12"> |
| <div class="logos"> |
| <a href="https://www.apache.org/"> |
| <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache"> |
| </a> |
| <p> |
| Copyright © 2015-2021 The Apache Software Foundation.<br> |
| <small class="footnote"> |
| Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt |
| project logo are either registered trademarks or trademarks of the Apache |
| Software Foundation in the United States and other countries. |
| </small> |
| </p> |
| <a href=""> |
| <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" /> |
| </a> |
| </div> |
| </div> |
| <a href="https://www.apache.org/licenses/"> |
| <button class="button-footer-asf"> |
| License |
| </button> |
| </a> |
| <a href="https://www.apache.org/foundation/sponsorship.html"> |
| <button class="button-footer-asf"> |
| Sponsorship |
| </button> |
| </a> |
| <a href="https://www.apache.org/foundation/thanks.html"> |
| <button class="button-footer-asf"> |
| Thanks |
| </button> |
| </a> |
| <a href="https://www.apache.org/security/"> |
| <button class="button-footer-asf"> |
| Security |
| </button> |
| </a> |
| <a href="https://apache.org/events/current-event"> |
| <button class="button-footer-asf"> |
| ASF Events |
| </button> |
| </a> |
| </footer> |
| </div> |
| </div> |
| |
| |
| </div> |
| |
| <script src="../../../../js/jquery-1.10.2.min.js"></script> |
| <script src="../../../../js/bootstrap-3.0.3.min.js"></script> |
| <script src="../../../../js/highlight.pack.js"></script> |
| <script src="../../../../js/base.js"></script> |
| <script src="../../../../js/custom.js"></script> |
| <script src="search/main.js"></script> |
| |
| </body> |
| </html> |