<?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 Why choose an RTOS environment for a Connectivity stack in Wireless MCU</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/Why-choose-an-RTOS-environment-for-a-Connectivity-stack/m-p/382975#M294</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;A connectivity stack is basically a networking model and set of communication protocols tailored for a specific technological direction – small, cheap, low-power devices with embedded digital intelligence, connected in various topologies.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;The communication protocols use well-defined formats for exchanging messages, specific communication phases for access management and tight time synchronization constrains, necessitating deterministically deadlines accomplishment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;As design, the communications protocols are structured using a layering scheme as a basis and usually follow a consecrated networking model – the &lt;EM&gt;Internet model&lt;/EM&gt;. This allows the decomposition of single, complex protocols into simpler, cooperating protocols, but it is also a functional decomposition, because each protocol belongs to a functional class.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;The correct vertical interactions, both logically and chronologically, between the layering protocols ensure the proper functioning of the system.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;An RTOS simplifies the design process of a system dividing it into multiple independent elements – tasks, assigning them specific priorities (based on their importance) and separating logical, functional and executional context.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;So mapping the protocol layers of a communication stack to tasks into an RTOS-based design is straightforward – assigning the correct execution priorities to the compositional tasks, being able to model prioritary actions or functions inside a layer by splitting it into specific sub-components – tasks with intermediary priority.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;It is desired to use a preemptive RTOS, due to the unpredictable nature of the communication over the media. This feature allows to ensure that the high priority tasks, like a Physical Layer transmit or receive task, are execute deterministically, are not delayed and do not interfere nor impact with the execution of upper layer tasks or activities.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;Since multitasking in an RTOS is basically a perceived concurrent execution of tasks, multiple activities can be achieved with no impact on the structure of the communication protocols, e.g. Rx or Tx in the same time as some (serial) data acquisition and human interaction.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;The vertical communication paths – usually described as Control Plane and User (or Data) Plane are implemented either using synchronous, or asynchronous methods:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="list-style-type: disc; text-align: justify;"&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Classical function/callback calls for synchronous aspects, aided by elements like events, mutexes, semaphores&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;RTOS-specific data flow mechanisms (messages, message queues, mailboxes, shared memory).&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;Ensuring a fast time to market (rapid porting to additional or next gen-like platforms or ramp-ups or kickstarts) can be leveraged by benefiting of the RTOS’s defining characteristics:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;abstraction layer to the underlying microcontroller&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;continuous provision and support for BSPs &amp;amp; Drivers&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;middleware availability:&lt;/SPAN&gt;&lt;OL style="list-style-type: lower-alpha; text-align: justify;"&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;File system&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;USB&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;User interface (graphics)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Networking&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Device I/O&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;tools integration &amp;amp; debugging capabilities&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Oct 2014 08:31:06 GMT</pubDate>
    <dc:creator>virgild</dc:creator>
    <dc:date>2014-10-10T08:31:06Z</dc:date>
    <item>
      <title>Why choose an RTOS environment for a Connectivity stack</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/Why-choose-an-RTOS-environment-for-a-Connectivity-stack/m-p/382975#M294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;A connectivity stack is basically a networking model and set of communication protocols tailored for a specific technological direction – small, cheap, low-power devices with embedded digital intelligence, connected in various topologies.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;The communication protocols use well-defined formats for exchanging messages, specific communication phases for access management and tight time synchronization constrains, necessitating deterministically deadlines accomplishment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;As design, the communications protocols are structured using a layering scheme as a basis and usually follow a consecrated networking model – the &lt;EM&gt;Internet model&lt;/EM&gt;. This allows the decomposition of single, complex protocols into simpler, cooperating protocols, but it is also a functional decomposition, because each protocol belongs to a functional class.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;The correct vertical interactions, both logically and chronologically, between the layering protocols ensure the proper functioning of the system.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;An RTOS simplifies the design process of a system dividing it into multiple independent elements – tasks, assigning them specific priorities (based on their importance) and separating logical, functional and executional context.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;So mapping the protocol layers of a communication stack to tasks into an RTOS-based design is straightforward – assigning the correct execution priorities to the compositional tasks, being able to model prioritary actions or functions inside a layer by splitting it into specific sub-components – tasks with intermediary priority.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;It is desired to use a preemptive RTOS, due to the unpredictable nature of the communication over the media. This feature allows to ensure that the high priority tasks, like a Physical Layer transmit or receive task, are execute deterministically, are not delayed and do not interfere nor impact with the execution of upper layer tasks or activities.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;Since multitasking in an RTOS is basically a perceived concurrent execution of tasks, multiple activities can be achieved with no impact on the structure of the communication protocols, e.g. Rx or Tx in the same time as some (serial) data acquisition and human interaction.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;The vertical communication paths – usually described as Control Plane and User (or Data) Plane are implemented either using synchronous, or asynchronous methods:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="list-style-type: disc; text-align: justify;"&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Classical function/callback calls for synchronous aspects, aided by elements like events, mutexes, semaphores&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;RTOS-specific data flow mechanisms (messages, message queues, mailboxes, shared memory).&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;Ensuring a fast time to market (rapid porting to additional or next gen-like platforms or ramp-ups or kickstarts) can be leveraged by benefiting of the RTOS’s defining characteristics:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;abstraction layer to the underlying microcontroller&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;continuous provision and support for BSPs &amp;amp; Drivers&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;middleware availability:&lt;/SPAN&gt;&lt;OL style="list-style-type: lower-alpha; text-align: justify;"&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;File system&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;USB&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;User interface (graphics)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Networking&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Device I/O&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI style="text-align: justify;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;tools integration &amp;amp; debugging capabilities&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Oct 2014 08:31:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/Why-choose-an-RTOS-environment-for-a-Connectivity-stack/m-p/382975#M294</guid>
      <dc:creator>virgild</dc:creator>
      <dc:date>2014-10-10T08:31:06Z</dc:date>
    </item>
  </channel>
</rss>

