<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: KW40Z_Connectivity_Software_1.0.1 review in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632596#M6745</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;8. &lt;STRONG&gt;ble_sig_defines.h&lt;/STRONG&gt;&amp;nbsp; should include DESCRIPTOR support for &lt;STRONG&gt;gatt_db.h&lt;/STRONG&gt;&lt;BR /&gt;&lt;A href="https://www.bluetooth.com/specifications/gatt/descriptors"&gt;https://www.bluetooth.com/specifications/gatt/descriptors&lt;/A&gt; &lt;BR /&gt;&lt;A href="https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml"&gt;https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml&lt;/A&gt; &lt;BR /&gt;example:&lt;BR /&gt;&amp;nbsp;CHARACTERISTIC(char_temperature, gBleSig_Temperature_d, (gGattCharPropRead_c | gGattCharPropNotify_c))&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;VALUE(value_temperature, gBleSig_Temperature_d, (gPermissionFlagReadable_c), 2, 0x00, 0xB4)&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DESCRIPTOR(desc_temperature, gBleSig_CharPresFormatDescriptor_d, (gPermissionFlagReadable_c), gBleSig_CharPresFormatDescriptorBytes_d, gBleSig_signed_16_bit_integer_d, gBleSig_Exponent_neg2_d, gBleSig_Celsius_temperature_d, gBleSig_No_Namespaces_d, gBleSig_unknown_d)&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CCCD(cccd_core_temperature)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;based on:&lt;BR /&gt;&lt;EM&gt;/* DESCRIPTOR(.., gBleSig_CharPresFormatDescriptor_d, .., 7, Format, Exponent, Unit, Namespace, Description) &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fgatt%2Fviewer%3FattributeXmlFile%3Dorg.bluetooth.descriptor.gatt.characteristic_presentation_format.xml" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml&lt;/A&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* The actual value = Characteristic Value * 10^Exponent. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define gBleSig_CharPresFormatDescriptorBytes_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; /* Format Mandatory&amp;nbsp; 8bit &amp;nbsp;&amp;nbsp; &amp;nbsp;range 0x00 &amp;nbsp;&amp;nbsp; &amp;nbsp;0x1B */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;&amp;nbsp; /* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fassigned-numbers%2Fformat-types" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/assigned-numbers/format-types&lt;/A&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 4 &amp;nbsp;&amp;nbsp; &amp;nbsp;unsigned 8-bit integer */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_unsigned_8_bit_integer&amp;nbsp;&amp;nbsp; 0x04&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 14 &amp;nbsp;&amp;nbsp; &amp;nbsp;signed 16-bit integer */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_signed_16_bit_integer_d&amp;nbsp; 0x0E&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Exponent Mandatory sint8 &amp;nbsp;&amp;nbsp; &amp;nbsp;-128 0 127&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10^Exponent: 0 =1 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Exponent_0_d&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10^Exponent: -2 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Exponent_neg2_d 0xFE &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10^Exponent: -3 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Exponent_neg3_d 0xFD &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Unit The Unit is a UUID. Mandatory uint16 &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;&amp;nbsp; /* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fassigned-numbers%2Funits" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/assigned-numbers/units&lt;/A&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x2700&amp;nbsp;&amp;nbsp; &amp;nbsp;unitless&amp;nbsp;&amp;nbsp; &amp;nbsp;org.bluetooth.unit.unitless */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_unitless_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00, 0x27&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x272F&amp;nbsp;&amp;nbsp; &amp;nbsp;Celsius temperature (degree Celsius)&amp;nbsp;&amp;nbsp; &amp;nbsp;org.bluetooth.unit.thermodynamic_temperature.degree_celsius */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Celsius_temperature_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2F, 0x27&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x2728&amp;nbsp;&amp;nbsp; &amp;nbsp;electric potential difference (volt)&amp;nbsp;&amp;nbsp; &amp;nbsp;org.bluetooth.unit.electric_potential_difference.volt */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_electric_potential_difference_d&amp;nbsp; 0x28, 0x27&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Namespace (organization) Mandatory&amp;nbsp; 8bit &amp;nbsp;&amp;nbsp; &amp;nbsp;0 &amp;nbsp;&amp;nbsp; &amp;nbsp;1 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0 &amp;nbsp;&amp;nbsp; &amp;nbsp;No Namespace&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_No_Namespaces_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 1 &amp;nbsp;&amp;nbsp; &amp;nbsp;Bluetooth SIG Assigned Numbers */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Bluetooth_SIG_Assigned_Numbers_d&amp;nbsp; 0x01&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Description&amp;nbsp; Name Space field. Mandatory 16bit &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A &amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;&amp;nbsp; /* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fassigned-numbers%2Fgatt-namespace-descriptors" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/assigned-numbers/gatt-namespace-descriptors&lt;/A&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* unknown&amp;nbsp;&amp;nbsp; &amp;nbsp;0x0000 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_unknown_d&amp;nbsp; 0x00, 0x00&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 Feb 2017 16:20:29 GMT</pubDate>
    <dc:creator>lucianfiran</dc:creator>
    <dc:date>2017-02-14T16:20:29Z</dc:date>
    <item>
      <title>KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632589#M6738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;KW40Z_Connectivity_Software_1.0.1 (KSDK_1.3.0); IAR 7.50&lt;/P&gt;&lt;P&gt;Some observed potential code issues list:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. \ConnSw\framework\Bootloader &lt;STRONG&gt;MKW40Z160_cfg.h&lt;/STRONG&gt; contains:&lt;BR /&gt;&lt;EM&gt;* \file MKW40Z160.h&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;/**&amp;nbsp; Kinetis ARM Cortex-M4 model */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef _MK21D256_CFG_H&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define _MK21D256_CFG_H&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif//MK21D5_CFG_H&lt;/EM&gt;&lt;BR /&gt;expected:&lt;BR /&gt;&lt;EM&gt;* \file MKW40Z160_cfg.h&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;....&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;/**&amp;nbsp; Kinetis ARM Cortex-M0+ model */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef _MKW40Z160_CFG_H&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define _MKW40Z160_CFG_H&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif//_MKW40Z160_CFG_H&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:04:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632589#M6738</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:04:31Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632590#M6739</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;2. BOARD_LTC_INSTANCE is defined in board.h and not in SecLib.h&lt;BR /&gt;add in SecLib.h&lt;BR /&gt;#ifndef BOARD_LTC_INSTANCE&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;#define BOARD_LTC_INSTANCE 0&lt;BR /&gt;#endif&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:06:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632590#M6739</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632591#M6740</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;3. TimersManager.h missed&amp;nbsp; osNumberOfTimers&amp;nbsp; count&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#define gTmrTotalTimers_c&amp;nbsp;&amp;nbsp; ( gTmrApplicationTimers_c + gTmrStackTimers_c )&lt;BR /&gt;should become (?):&lt;BR /&gt;gTmrTotalTimers_c&amp;nbsp;&amp;nbsp; ( gTmrApplicationTimers_c + gTmrStackTimers_c + osNumberOfTimers )&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:08:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632591#M6740</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:08:50Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632592#M6741</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;4. app_preinclude.h total stack usage, overflow check (?), and how to dimension:&lt;/P&gt;&lt;P&gt;Stack Size values found in project:&lt;BR /&gt;#define gTmrTaskStackSize_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500&lt;BR /&gt;#define gSerialTaskStackSize_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1024&lt;BR /&gt;#define gMainThreadStackSize_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1024&lt;BR /&gt;#define gControllerTaskStackSize_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 900&lt;BR /&gt;#define gHost_TaskStackSize_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1300&lt;BR /&gt;#define gL2ca_TaskStackSize_c 600&lt;BR /&gt;#define gAppIdleTaskStackSize_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (400)&lt;BR /&gt;#define gFwkCommonStackSize_c&lt;/P&gt;&lt;P&gt;#define gMacTaskStackSize_c 1280&lt;BR /&gt;#define gPhyTaskStackSize_c 600&lt;/P&gt;&lt;P&gt;#define USB_OTG_TASK_STACKSIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000&lt;BR /&gt;#define USB_KHCI_TASK_STACKSIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3500&lt;BR /&gt;#define USB_KHCI_TASK_STACKSIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3500&lt;BR /&gt;#define USB_KHCI_TASK_STACKSIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3500&lt;BR /&gt;#define USB_KHCI_TASK_STACKSIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3500&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:10:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632592#M6741</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:10:58Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632593#M6742</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;5. #ifdef gXcvrXtalTrimEnabled_d to&lt;STRONG&gt; #if&lt;/STRONG&gt; (gXcvrXtalTrimEnabled_d) in KW4xXcvrDrv.c and KW3xXcvrDrv.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;#if&lt;/STRONG&gt; (gXcvrXtalTrimEnabled_d)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#include "Flash_Adapter.h"&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;void XcvrInit ( radio_mode_t radioMode )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XcvrInit_ModeChg_Common(radioMode,FIRST_INIT);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;#if&lt;/STRONG&gt; (gXcvrXtalTrimEnabled_d)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; if( 0xFFFFFFFF != gHardwareParameters.xtalTrim )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; {&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XcvrSetXtalTrim( (uint8_t)gHardwareParameters.xtalTrim );&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; }&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:13:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632593#M6742</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:13:43Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632594#M6743</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;6. file &lt;STRONG&gt;Eeprom_Boot.h&amp;nbsp;&lt;/STRONG&gt;contains: &lt;BR /&gt;&lt;EM&gt;* \file Eeprom.h&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef _EEPROM_H_&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define _EEPROM_H_&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif /* _EEPROM_H_ */&lt;/EM&gt;&lt;BR /&gt;&lt;STRONG&gt;expected&lt;/STRONG&gt;&lt;BR /&gt;&lt;EM&gt;* \file Eeprom_Boot.h&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef _EEPROM_BOOT_H_&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define _EEPROM_BOOT_H_&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif /* _EEPROM_BOOT_H_ */&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:15:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632594#M6743</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632595#M6744</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;7. &lt;STRONG&gt;Keyboard.h&lt;/STRONG&gt; should include EmbeddedTypes.h if LED.h is not used&lt;BR /&gt;#ifndef _KEYBOARD_INTERFACE_H_&lt;BR /&gt;#define _KEYBOARD_INTERFACE_H_&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "EmbeddedTypes.h"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 10:24:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632595#M6744</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T10:24:48Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632596#M6745</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;8. &lt;STRONG&gt;ble_sig_defines.h&lt;/STRONG&gt;&amp;nbsp; should include DESCRIPTOR support for &lt;STRONG&gt;gatt_db.h&lt;/STRONG&gt;&lt;BR /&gt;&lt;A href="https://www.bluetooth.com/specifications/gatt/descriptors"&gt;https://www.bluetooth.com/specifications/gatt/descriptors&lt;/A&gt; &lt;BR /&gt;&lt;A href="https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml"&gt;https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml&lt;/A&gt; &lt;BR /&gt;example:&lt;BR /&gt;&amp;nbsp;CHARACTERISTIC(char_temperature, gBleSig_Temperature_d, (gGattCharPropRead_c | gGattCharPropNotify_c))&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;VALUE(value_temperature, gBleSig_Temperature_d, (gPermissionFlagReadable_c), 2, 0x00, 0xB4)&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DESCRIPTOR(desc_temperature, gBleSig_CharPresFormatDescriptor_d, (gPermissionFlagReadable_c), gBleSig_CharPresFormatDescriptorBytes_d, gBleSig_signed_16_bit_integer_d, gBleSig_Exponent_neg2_d, gBleSig_Celsius_temperature_d, gBleSig_No_Namespaces_d, gBleSig_unknown_d)&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CCCD(cccd_core_temperature)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;based on:&lt;BR /&gt;&lt;EM&gt;/* DESCRIPTOR(.., gBleSig_CharPresFormatDescriptor_d, .., 7, Format, Exponent, Unit, Namespace, Description) &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fgatt%2Fviewer%3FattributeXmlFile%3Dorg.bluetooth.descriptor.gatt.characteristic_presentation_format.xml" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml&lt;/A&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* The actual value = Characteristic Value * 10^Exponent. */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define gBleSig_CharPresFormatDescriptorBytes_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; /* Format Mandatory&amp;nbsp; 8bit &amp;nbsp;&amp;nbsp; &amp;nbsp;range 0x00 &amp;nbsp;&amp;nbsp; &amp;nbsp;0x1B */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;&amp;nbsp; /* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fassigned-numbers%2Fformat-types" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/assigned-numbers/format-types&lt;/A&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 4 &amp;nbsp;&amp;nbsp; &amp;nbsp;unsigned 8-bit integer */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_unsigned_8_bit_integer&amp;nbsp;&amp;nbsp; 0x04&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 14 &amp;nbsp;&amp;nbsp; &amp;nbsp;signed 16-bit integer */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_signed_16_bit_integer_d&amp;nbsp; 0x0E&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Exponent Mandatory sint8 &amp;nbsp;&amp;nbsp; &amp;nbsp;-128 0 127&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10^Exponent: 0 =1 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Exponent_0_d&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10^Exponent: -2 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Exponent_neg2_d 0xFE &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10^Exponent: -3 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Exponent_neg3_d 0xFD &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Unit The Unit is a UUID. Mandatory uint16 &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;&amp;nbsp; /* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fassigned-numbers%2Funits" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/assigned-numbers/units&lt;/A&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x2700&amp;nbsp;&amp;nbsp; &amp;nbsp;unitless&amp;nbsp;&amp;nbsp; &amp;nbsp;org.bluetooth.unit.unitless */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_unitless_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00, 0x27&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x272F&amp;nbsp;&amp;nbsp; &amp;nbsp;Celsius temperature (degree Celsius)&amp;nbsp;&amp;nbsp; &amp;nbsp;org.bluetooth.unit.thermodynamic_temperature.degree_celsius */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Celsius_temperature_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2F, 0x27&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x2728&amp;nbsp;&amp;nbsp; &amp;nbsp;electric potential difference (volt)&amp;nbsp;&amp;nbsp; &amp;nbsp;org.bluetooth.unit.electric_potential_difference.volt */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_electric_potential_difference_d&amp;nbsp; 0x28, 0x27&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Namespace (organization) Mandatory&amp;nbsp; 8bit &amp;nbsp;&amp;nbsp; &amp;nbsp;0 &amp;nbsp;&amp;nbsp; &amp;nbsp;1 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0 &amp;nbsp;&amp;nbsp; &amp;nbsp;No Namespace&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_No_Namespaces_d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 1 &amp;nbsp;&amp;nbsp; &amp;nbsp;Bluetooth SIG Assigned Numbers */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_Bluetooth_SIG_Assigned_Numbers_d&amp;nbsp; 0x01&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; /* Description&amp;nbsp; Name Space field. Mandatory 16bit &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A &amp;nbsp;&amp;nbsp; &amp;nbsp;N/A &amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;SPAN&gt;&amp;nbsp; /* &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.bluetooth.com%2Fspecifications%2Fassigned-numbers%2Fgatt-namespace-descriptors" rel="nofollow" target="_blank"&gt;https://www.bluetooth.com/specifications/assigned-numbers/gatt-namespace-descriptors&lt;/A&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* unknown&amp;nbsp;&amp;nbsp; &amp;nbsp;0x0000 */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define gBleSig_unknown_d&amp;nbsp; 0x00, 0x00&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:20:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632596#M6745</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T16:20:29Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632597#M6746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;9. LED &lt;STRONG&gt;inverse output setting&lt;/STRONG&gt; (LED1..LED4)&lt;BR /&gt;LED.h&lt;BR /&gt;&lt;EM&gt;/*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* Name: mLEDInvertedOut&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* Description: Led outpus inverted. Default value TRUE.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LedOn&amp;nbsp; -&amp;gt; GPIO_DRV_ClearPinOutput(kGpioLEDx)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LedOff -&amp;gt; GPIO_DRV_SetPinOutput(kGpioLEDx)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FALSE &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LedOn&amp;nbsp;&amp;nbsp; -&amp;gt; GPIO_DRV_SetPinOutput(kGpioLEDx)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LedOff&amp;nbsp; -&amp;gt; GPIO_DRV_ClearPinOutput(kGpioLEDx)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef mLEDInvertedOut_c&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; #define mLEDInvertedOut_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LED.c&lt;BR /&gt;&lt;EM&gt;void LED_Operate&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;case gLedOn_c:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#if (mLEDInvertedOut_c)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_ClearPinOutput(kGpioLED1);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#else&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_SetPinOutput(kGpioLED1);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#endif /* mLEDInvertedOut_c */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;case gLedOff_c:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#if (mLEDInvertedOut_c)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_SetPinOutput(kGpioLED1);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#else&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GPIO_DRV_ClearPinOutput(kGpioLED1);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#endif /* mLEDInvertedOut_c */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;....&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;* \file LED.h&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* LED export interface file for ARM CORTEX-M4 processor&lt;/EM&gt;&lt;BR /&gt;should be updated to ARM Cortex-M0+&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Feb 2017 16:22:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632597#M6746</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-14T16:22:37Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632598#M6747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;10. missing _FWKINIT_H_ in&amp;nbsp; &lt;STRONG&gt;FwkInit.c&lt;/STRONG&gt;&lt;BR /&gt;should add:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef _FWKINIT_H_&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define _FWKINIT_H_&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif /* _FWKINIT_ */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;and&lt;BR /&gt;&lt;EM&gt;* TIMER implementation file for the ARM CORTEX-M4 processor&lt;/EM&gt;&lt;BR /&gt;should be:&lt;BR /&gt;&lt;EM&gt;* TIMER implementation file for the ARM CORTEX-M0+ processor&amp;nbsp;&lt;/EM&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2017 02:15:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632598#M6747</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-17T02:15:05Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632599#M6748</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;11. how to set private static Bluetooth MAC address in&amp;nbsp;&lt;STRONG&gt;ble_controller_task.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;very strange &lt;STRONG&gt;const&lt;/STRONG&gt; definition; stack is &lt;STRONG&gt;pre-compiled&lt;/STRONG&gt; (&lt;EM&gt;hope for the best&lt;/EM&gt; and remove the const...)&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;const&lt;/EM&gt; uint8_t gBDAddress_c[6] = {BD_ADDR};&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;.....&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;static void clone_RSIM_private_static_MAC(void)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t *ptr;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t *)(RSIM_BASE + 0x0C); // RSIM_MAC_LSB&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBDAddress_c[0] = (uint8_t) *ptr;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBDAddress_c[1] = (uint8_t) ( *ptr &amp;gt;&amp;gt; 8); &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBDAddress_c[2] = (uint8_t) ( *ptr &amp;gt;&amp;gt; 16); &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBDAddress_c[3] = (uint8_t) ( *ptr &amp;gt;&amp;gt; 24); &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr = (uint32_t *)(RSIM_BASE + 0x08); // RSIM_MAC_MSB&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBDAddress_c[4] = (uint8_t) *ptr;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBDAddress_c[5] = 0xC0;&amp;nbsp;&amp;nbsp; // MSB is 11xx xxxx&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2017 02:32:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632599#M6748</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-17T02:32:10Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632600#M6749</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;12. &lt;STRONG&gt;MKW40Z160_cfg.&lt;/STRONG&gt;h why define KINETIS_MODEL_STR is "&lt;STRONG&gt;KL46&lt;/STRONG&gt;"&lt;BR /&gt;&lt;EM&gt;#define KINETIS_MODEL KW40_48MHz&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;EM&gt;/* Description string */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define KINETIS_MODEL_STR "KL46"&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;is used in &lt;STRONG&gt;UartBootloader.c&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;expected something like "&lt;EM&gt;KW40"&lt;/EM&gt; or "&lt;EM&gt;KW30Z" ...&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2017 02:46:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632600#M6749</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-17T02:46:59Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632601#M6750</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;13. &lt;STRONG&gt;fsl_mcg_hal_modes.h&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*! @brief&lt;BR /&gt;&amp;nbsp;* Check parameter or not during MCG mode switching. It is recommend to enable&lt;BR /&gt;&amp;nbsp;* this macro when debug. After debug, disable this macro for code size&lt;BR /&gt;&amp;nbsp;* optimization.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;#define MCG_MODE_CHECK_PARAM 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;someone could follow the suggestion like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if DEBUG &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#define MCG_MODE_CHECK_PARAM&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#define MCG_MODE_CHECK_PARAM&amp;nbsp;&amp;nbsp;&amp;nbsp; FALSE&lt;BR /&gt;#endif&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Feb 2017 14:48:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632601#M6750</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-17T14:48:38Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632602#M6751</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;14. possible uncorrelated &lt;STRONG&gt;gUseNVMLink_d&lt;/STRONG&gt; linker set and &lt;STRONG&gt;mAppUseNvm_d&lt;/STRONG&gt; define&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if &lt;STRONG&gt;gUseNVMLink_d=0&lt;/STRONG&gt; and &lt;STRONG&gt;mAppUseNvm_d TRUE&lt;/STRONG&gt; linker fails:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Error[Li005]: no definition for "NV_STORAGE_END_ADDRESS"&lt;/STRONG&gt; [referenced from D:\....\debug\obj\ApplMain.o]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/13528i489218C186E28C52/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;\platform\devices\MKW30Z4\linker\iar\&lt;STRONG&gt;MKW30Z160xxx4_connectivity.icf&lt;/STRONG&gt;&lt;BR /&gt;&lt;EM&gt;if( &lt;STRONG&gt;gUseNVMLink_d&lt;/STRONG&gt; )&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; define exported symbol NV_STORAGE_SECTOR_SIZE = m_sector_size;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; define exported symbol NV_STORAGE_MAX_SECTORS = gNVMSectorCountLink_d;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NV_STORAGE_MAX_SECTORS * NV_STORAGE_SECTOR_SIZE = total NV Storage space */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp; define exported symbol NV_STORAGE_START_ADDRESS = m_fsl_prodInfo_start - 1;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; define exported symbol &lt;STRONG&gt;NV_STORAGE_END_ADDRESS&lt;/STRONG&gt; = NV_STORAGE_START_ADDRESS - (NV_STORAGE_MAX_SECTORS * NV_STORAGE_SECTOR_SIZE) + 1;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ApplMain.c&lt;/STRONG&gt;&lt;BR /&gt;&lt;EM&gt;....&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#ifndef mAppUseNvm_d&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp; #define &lt;STRONG&gt;mAppUseNvm_d&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;....&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;extern uint32_t NV_STORAGE_END_ADDRESS[];&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;void main_task(uint32_t param)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#if &lt;STRONG&gt;mAppUseNvm_d&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize NV module */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NV_Init();&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NV_STORAGE_END_ADDRESS from linker file is used as NV Start Address */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gNvmStartAddress_c = (uint32_t)((uint8_t*)&lt;STRONG&gt;NV_STORAGE_END_ADDRESS&lt;/STRONG&gt;);&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;\framework\NVM\Source\&lt;STRONG&gt;NV_Flash.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;EM&gt;#if gNvStorageIncluded_d&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#if (gNvUseFlexNVM_d == FALSE) || ((gNvUseFlexNVM_d == TRUE) &amp;amp;&amp;amp; (DEBLOCK_SIZE == 0)) /* no FlexNVM */&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Name: NV_STORAGE_END_ADDRESS&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Description: NV_STORAGE_END_ADDRESS from linker command file is used by this code&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; as Raw Sector Start Address. This should not be misleading because&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENVM module writes meta information in address-ascending order&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and records in address-descending order.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;extern uint32_t NV_STORAGE_END_ADDRESS[];&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Name: NV_STORAGE_SECTOR_SIZE&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Description: external symbol from linker command file, it represents the size&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of a FLASH sector&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;extern uint32_t NV_STORAGE_SECTOR_SIZE[];&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Name:&amp;nbsp; NV_STORAGE_MAX_SECTORS&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Description: external symbol from linker command file, it represents the sectors&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count used by the ENVM storage system; it has to be a multiple of 2&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;extern uint32_t&amp;nbsp; NV_STORAGE_MAX_SECTORS[];&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#endif /* no FlexNVM */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif /* gNvStorageIncluded_d */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Feb 2017 10:35:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632602#M6751</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-18T10:35:45Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632603#M6752</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;15.&amp;nbsp; gHardwareParameters.&lt;STRONG&gt;gInternalStorageAddr&lt;/STRONG&gt; used only once, and never before after&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\framework\OtaSupport\Source\&lt;STRONG&gt;OtaSupport.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;/*****************************************************************************&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp; OTA_InitExternalMemory&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp; This function is called in order to initialize all elements needed for&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp; external memory access&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*****************************************************************************/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;otaResult_t OTA_InitExternalMemory(void)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#if (gEepromType_d != gEepromDevice_None_c)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static bool_t mEepromInitStatus = FALSE;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( !mEepromInitStatus ) &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(EEPROM_Init() != ee_ok)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gOtaExternalFlashError_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Update the offset to the internal storage if necessary */&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NV_ReadHWParameters(&amp;amp;gHardwareParameters);&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( gHardwareParameters.gInternalStorageAddr != gEepromParams_StartOffset_c )&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gHardwareParameters.gInternalStorageAddr = gEepromParams_StartOffset_c;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NV_WriteHWParameters(&amp;amp;gHardwareParameters);&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mEepromInitStatus = TRUE;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gOtaSucess_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#else&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gOtaExternalFlashError_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;same definition:&lt;BR /&gt;\framework\Flash\External\Interface\&lt;STRONG&gt;Eeprom.h&lt;/STRONG&gt;&lt;BR /&gt;\framework\Bootloader\Bootloader_OTAP_Serial\src\eeprom\&lt;STRONG&gt;Eeprom_Boot.h&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;#ifndef gEepromParams_StartOffset_c&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#define gEepromParams_StartOffset_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt; 0xFFFFFFFF /* Not defined */&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#endif&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;the variable &lt;STRONG&gt;gHardwareParameters.gInternalStorageAddr&lt;/STRONG&gt; is used &lt;STRONG&gt;only&lt;/STRONG&gt; in this function.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;defined in \framework\Flash\Internal\&lt;STRONG&gt;Flash_Adapter.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;/* Hardware parameters */&lt;BR /&gt;hardwareParameters_t gHardwareParameters;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;The variable reads from FREESCALE_PROD_DATA (m_fsl_prodInfo_start) zone 0xFFFFFFFF most likely already filled with 0xFF&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_8.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/13530i4E51ADADC0D719EF/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_8.png" alt="pastedImage_8.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;As read &amp;amp; write 1K flash block's consume some time and some flash, the code in bold may be removed.&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Feb 2017 19:56:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632603#M6752</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-18T19:56:53Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632604#M6753</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;16. OtapBootloader project build &lt;BR /&gt;\framework\Bootloader&lt;BR /&gt;path does not exist as expected in Post-build command line:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/13529i3A74EE3BBB0FD89D/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;EM&gt;$TOOLKIT_DIR$\bin\ielftool "$PROJ_DIR$\BootloaderOTAP_KW40Z4\exe\BootloaderOTAP_KW40Z4.out" "$PROJ_DIR$\Binaries\BootloaderOTAP_KW40Z4.bin" --bin --silent&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;either create folder &lt;STRONG&gt;Binaries&lt;/STRONG&gt; (then copy to Bin folder)&lt;BR /&gt; \framework\Bootloader\Bootloader_OTAP_Serial\&lt;STRONG&gt;Binaries&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;or better update command to:&lt;BR /&gt;&lt;EM&gt;$TOOLKIT_DIR$\bin\ielftool "$PROJ_DIR$\BootloaderOTAP_KW40Z4\exe\BootloaderOTAP_KW40Z4.out" &lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;"$PROJ_DIR$&lt;STRONG&gt;\..\Bin&lt;/STRONG&gt;\BootloaderOTAP_KW40Z4.bin" --bin --silent&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;as the image is needed in \framework\Bootloader\Bin\ for main project to link:&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_7.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/13568iAA261F113CC121B9/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_7.png" alt="pastedImage_7.png" /&gt;&lt;/span&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 18 Feb 2017 22:06:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632604#M6753</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-18T22:06:41Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632605#M6754</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;15.&amp;nbsp; gHardwareParameters.&lt;STRONG&gt;gInternalStorageAddr zone should be kept !&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;as a non-intuitive naming is available in boot-loader to check if external storage should be used:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\framework\Bootloader\Bootloader_OTAP_Serial\src\OtapSerialBootloader\&lt;STRONG&gt;OtapBootloader.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;/*! *********************************************************************************&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* \brief&amp;nbsp;&amp;nbsp; This function determines the start address of the internal sorage.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If value is 0xFFFFFFFF then external storage should be used!&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;* \return the start address of the internal storage&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;********************************************************************************** */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;uint32_t Boot_GetInternalStorageStartAddr(void)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return *((uint32_t*)(gBootProductInfoAddress_c + gInternalStorageStartAddressOffset_c));&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;}&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;OtapBootloader.h&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;/*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;* Name: gBootProductInfoAddress_c&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;* Description: Address of the ProductInfo&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The Product info is located in the last sector of the FLASH&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;*/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define &lt;STRONG&gt;gBootProductInfoAddress_c&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gMcuFlashSize_c - gFlashErasePage_c)&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;/*&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;* Name: gInternalStorageStartAddress_c&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;* Description: The start address of the internal storage&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;*/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#define gInternalStorageStartAddressOffset_c (0x44)&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in this case &lt;STRONG&gt;gBootProductInfoAddress_c&lt;/STRONG&gt; should be equal&amp;nbsp; &lt;STRONG&gt;FREESCALE_PROD_DATA_BASE_ADDR&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;and the offset &lt;STRONG&gt;gInternalStorageStartAddressOffset_c&lt;/STRONG&gt; matches &lt;STRONG&gt;gInternalStorageAddr&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Flash_Adapter.h&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;typedef PACKED_STRUCT hardwareParameters_tag&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;{&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp; reserved[42];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* for backward compatibillity */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp; ieee_802_15_4_address[8]; /* IEEE 802.15.4 MAC address&amp;nbsp;&amp;nbsp; - not used&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp; bluetooth_address[6];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bluetooth address */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t xtalTrim;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* KW4x only */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t edCalibrationOffset;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* KW01 ED offset&amp;nbsp; - not used */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t pllFStepOffset;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* KW01 fine tune pll&amp;nbsp;&amp;nbsp; - not used&amp;nbsp; */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t &lt;STRONG&gt;gInternalStorageAddr&lt;/STRONG&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The start address of the internal storage used for OTA update.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A value of 0xFFFFFFFF means that the External storage is used. */&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;} hardwareParameters_t;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Flash_Adapter.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;/* Hardware parameters */&lt;BR /&gt;hardwareParameters_t &lt;STRONG&gt;gHardwareParameters&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Application use 2 points to communicate with boot-loader, as general approach to confirm image location and image parameters:&lt;/P&gt;&lt;P&gt;MKW30Z ROM map&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_17.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/13531iF3FE33F005EF9BD1/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_17.png" alt="pastedImage_17.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;Bluetooth® Low Energy Application Developer’s Guide Rev. 1, 10/2015&amp;nbsp;&lt;/STRONG&gt; (page 113 - 114)&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt; &lt;SPAN class=""&gt;The BOOT_FLAGS section contains bootloader flags and the target bootloader version. The OTAP Bootloader looks &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;for this section immediately after the ISR_TABLE&lt;/SPAN&gt; &lt;BR style="font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_19.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/13573iFA802BA4B180B99E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_19.png" alt="pastedImage_19.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt; &lt;SPAN class=""&gt;The FSL_PROD_DATA section contains the location of the upgrade image. The location is a 32bit number &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;which is set at compile time. It is set to 0xFFFFFFFF if external SPI FLASH storage is used or to a location &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;inside the internal FLASH memory (which is always smaller than 0xFFFFFFFF) if internal image storage is used.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt; This is necessary for the OTAP Bootloader to know the source of the upgrade image.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this case MKW30Z as the images hardly fits internally one flash parameter can be sufficient&lt;/P&gt;&lt;P&gt;and could decrease program size.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Feb 2017 00:24:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632605#M6754</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-19T00:24:30Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632606#M6755</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;17. /framework/Bootloader/Bootloader_OTAP_Serial/Linker_cfg/&lt;STRONG&gt;BootloaderOTAP.icf&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;define exported symbol __BOOT_STACK_ADDRESS = __region_RAM_end__ - 7; &lt;STRONG&gt;//0x20007FF8;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;this comment should be&amp;nbsp; // 0x2000&lt;STRONG&gt;1&lt;/STRONG&gt;FF8&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_5.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/15365i6E5A8CD0B1665C48/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_5.png" alt="pastedImage_5.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Feb 2017 08:38:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632606#M6755</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-21T08:38:44Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632607#M6756</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;18. &amp;nbsp;An observed OTAP update behaviour:&lt;BR /&gt;&amp;nbsp; - if new .srec image does not contain bootloader structure, the bootloader fails to start, or update, and the PCB is stuck &lt;BR /&gt;&amp;nbsp; - if new .srec image contains bootloader structure it works.&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; - if bootloader does not find right bootFlags data in ROM area 000014C0 to 000014C7 (&lt;STRONG&gt;gpBootInfo&lt;/STRONG&gt; &amp;lt;-&amp;gt;&amp;nbsp; app &lt;STRONG&gt;gBootFlags&lt;/STRONG&gt; structure)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;EM&gt;&amp;nbsp; ((gpBootInfo-&amp;gt;newBootImageAvailable[0] != gBootValueForTRUE_c) &amp;amp;&amp;amp; (gpBootInfo-&amp;gt;bootProcessCompleted[0] ==&amp;nbsp; gBootValueForTRUE_c))&lt;/EM&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; than the bootloader does not start and tries to update the image. &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;- if bootloader tries to update from already stored image he should find where the image is stored - internal vs external flash.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Here it checks the content of address (gBootProductInfoAddress_c + gInternalStorageStartAddressOffset_c) in application stored by&lt;BR /&gt;gHardwareParameters.gInternalStorageAddr is eqiual to 0xFFFFFFFF if external SPI EEPROM is used.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;Suggestions:&lt;BR /&gt;First &amp;nbsp;&lt;BR /&gt;&amp;nbsp; I think for this chip MKW30Z using internal storage is not an feasible option (OTAP + BLE stack + bootloader is quite large)&lt;BR /&gt;By default external storage should be used -&amp;gt; so the check for internal/external data is not necessary; only external image should be used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second - bootloader entry check - can be updated to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpBootInfo = (bootInfo_t*)gBootImageFlagsAddress_c;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;STRONG&gt; ((gpBootInfo-&amp;gt;newBootImageAvailable[0] == gBootValueForTRUE_c) &amp;amp;&amp;amp;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gpBootInfo-&amp;gt;bootProcessCompleted[0] ==&amp;nbsp; gBootValueForTRUE_c))&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write the new image */&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boot_LoadImage();&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the start address of the interrupt vector*/&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB_VTOR = gUserFlashStart_d;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JumpToApplication(gUserFlashStart_d);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/framework/Bootloader/Bootloader_OTAP_Serial/src/OtapSerialBootloader/&lt;STRONG&gt;OtapBootloader.c&lt;/STRONG&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;int main(int argc, char **argv)&lt;BR /&gt;{&lt;BR /&gt;.....&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check if there is no boot image available in the external EEPROM and if eventually&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; the booting of the previous one has been completed. If both conditions are met, start&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; running the application in the internal Flash. Else, start the process of booting from&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; external EEPROM */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpBootInfo = (bootInfo_t*)gBootImageFlagsAddress_c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( (gpBootInfo-&amp;gt;newBootImageAvailable == gBootValueForTRUE_c) &amp;amp;&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gpBootInfo-&amp;gt;bootProcessCompleted ==&amp;nbsp; gBootValueForFALSE_c) )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((gpBootInfo-&amp;gt;newBootImageAvailable[0] != gBootValueForTRUE_c) &amp;amp;&amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (gpBootInfo-&amp;gt;bootProcessCompleted[0] ==&amp;nbsp; gBootValueForTRUE_c))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the start address of the interrupt vector*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB_VTOR = gUserFlashStart_d;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JumpToApplication(gUserFlashStart_d);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write the new image */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boot_LoadImage();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;.....&lt;/P&gt;&lt;P&gt;/*! *********************************************************************************&lt;BR /&gt;* \brief&amp;nbsp;&amp;nbsp; This function will copy the User Application from the external memory&lt;BR /&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into the program Flash&lt;BR /&gt;*&lt;BR /&gt;********************************************************************************** */&lt;BR /&gt;void Boot_LoadImage (void)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;.....&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check if we have a valid internal storage start address. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gBootStorageStartAddress = Boot_GetInternalStorageStartAddr();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;/*! *********************************************************************************&lt;BR /&gt;* \brief&amp;nbsp;&amp;nbsp; This function determines the start address of the internal sorage.&lt;BR /&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If value is 0xFFFFFFFF then external storage should be used!&lt;BR /&gt;*&lt;BR /&gt;* \return the start address of the internal storage&lt;BR /&gt;*&lt;BR /&gt;********************************************************************************** */&lt;BR /&gt;uint32_t Boot_GetInternalStorageStartAddr(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return *((uint32_t*)(gBootProductInfoAddress_c + gInternalStorageStartAddressOffset_c));&lt;BR /&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;/framework/Bootloader/Bootloader_OTAP_Serial/src/OtapSerialBootloader/OtapBootloader.h&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/* Defines used for implementing the boolean types when working with Flash */&lt;BR /&gt;#define gBootInvalidAddress_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFFFFFFFF&lt;BR /&gt;#define gBootValueForTRUE_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00&lt;BR /&gt;#define gBootValueForFALSE_c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFF&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;\framework\OtaSupport\Source\&lt;STRONG&gt;OtaSupport.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;gBootFlags&lt;/STRONG&gt; is initialized to&amp;nbsp; &lt;STRONG&gt;{{gBootValueForFALSE_c}, {gBootValueForTRUE_c}, {0x00, 0x02}};&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void OTA_SetNewImageFlag(void)&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;if new image ready gBootFlags.newBootImageAvailable is updated to gBootValueForTRUE_c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bootProcessCompleted already true, not used&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Feb 2017 12:54:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632607#M6756</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-02-21T12:54:25Z</dc:date>
    </item>
    <item>
      <title>Re: KW40Z_Connectivity_Software_1.0.1 review</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632608#M6757</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;19. &lt;STRONG&gt;FwkInit.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#ifndef _FWKINIT_H_&lt;BR /&gt;#define _FWKINIT_H_&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;#endif /* _FWKINIT_ */&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;It does not have separate h, but h looks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#if defined(FWK_SMALL_RAM_CONFIG)&lt;/STRONG&gt;&lt;BR /&gt;better be changed to &lt;BR /&gt;&lt;STRONG&gt;#if (FWK_SMALL_RAM_CONFIG)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so FWK_SMALL_RAM_CONFIG can be set to 0 or 1 (or TRUE/FALSE) easily in app_preinclude.h&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* TIMER implementation file for the ARM CORTEX-M4 processor&lt;BR /&gt;should be&amp;nbsp; ARM CORTEX-M0+&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 04 Mar 2017 10:49:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KW40Z-Connectivity-Software-1-0-1-review/m-p/632608#M6757</guid>
      <dc:creator>lucianfiran</dc:creator>
      <dc:date>2017-03-04T10:49:57Z</dc:date>
    </item>
  </channel>
</rss>

