embetronicx.com
Open in
urlscan Pro
188.114.96.3
Public Scan
URL:
https://embetronicx.com/tutorials/automotive/autosar/application-layer-in-autosar-autosar-tutorials/
Submission: On May 21 via manual from TN — Scanned from NL
Submission: On May 21 via manual from TN — Scanned from NL
Form analysis
5 forms found in the DOMGET https://embetronicx.com/
<form method="get" class="search-form navigation-search" action="https://embetronicx.com/">
<input type="search" class="search-field" value="" name="s" title="Search">
</form>
POST https://embetronicx.com/wp-admin/admin-ajax.php?action=wpdAddSubscription
<form action="https://embetronicx.com/wp-admin/admin-ajax.php?action=wpdAddSubscription" method="post" id="wpdiscuz-subscribe-form">
<div class="wpdiscuz-subscribe-form-intro">Notify of </div>
<div class="wpdiscuz-subscribe-form-option" style="width:40%;">
<select class="wpdiscuz_select" name="wpdiscuzSubscriptionType">
<option value="post">new follow-up comments</option>
<option value="all_comment">new replies to my comments</option>
</select>
</div>
<div class="wpdiscuz-item wpdiscuz-subscribe-form-email">
<input class="email" type="email" name="wpdiscuzSubscriptionEmail" required="required" value="" placeholder="Email">
</div>
<div class="wpdiscuz-subscribe-form-button">
<input id="wpdiscuz_subscription_button" class="wpd-prim-button wpd_not_clicked" type="submit" value="›" name="wpdiscuz_subscription_button">
</div>
<input type="hidden" id="wpdiscuz_subscribe_form_nonce" name="wpdiscuz_subscribe_form_nonce" value="26b20835e7"><input type="hidden" name="_wp_http_referer" value="/tutorials/automotive/autosar/application-layer-in-autosar-autosar-tutorials/">
</form>
POST
<form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd_main_comm_form">
<div class="wpd-field-comment">
<div class="wpdiscuz-item wc-field-textarea">
<div class="wpdiscuz-textarea-wrap ">
<div class="wpd-avatar">
<img alt="guest" src="https://embetronicx.com/wp-content/uploads/2020/05/avatar_146_146.png" srcset="https://embetronicx.com/wp-content/uploads/2020/05/avatar_146_146.png 2x" class="avatar avatar-56 photo" height="56" width="56">
</div>
<div id="wpd-editor-wraper-0_0" style="">
<label style="display: none;" for="wc-textarea-0_0">Label</label>
<div id="wpd-editor-0_0" class="ql-container ql-snow">
<div class="ql-editor ql-blank" data-gramm="false" contenteditable="true" data-placeholder="Join the discussion">
<p><br></p>
</div>
<div class="ql-clipboard" contenteditable="true" tabindex="-1"></div>
<div class="ql-tooltip ql-hidden"><a class="ql-preview" target="_blank" href="about:blank"></a><input type="text" data-formula="e=mc^2" data-link="https://example.com"
data-video="Embed URL"><a class="ql-action"></a><a class="ql-remove"></a></div>
<div class="ql-texteditor"><textarea id="wc-textarea-0_0" name="wc_comment" class="wc_comment wpd-field" style="display: none;"></textarea></div>
</div>
<div id="wpd-editor-toolbar-0_0" class="ql-toolbar ql-snow">
<button title="Bold" class="ql-bold" type="button"><svg viewBox="0 0 18 18">
<path class="ql-stroke" d="M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z"></path>
<path class="ql-stroke" d="M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z"></path>
</svg></button>
<button title="Italic" class="ql-italic" type="button"><svg viewBox="0 0 18 18">
<line class="ql-stroke" x1="7" x2="13" y1="4" y2="4"></line>
<line class="ql-stroke" x1="5" x2="11" y1="14" y2="14"></line>
<line class="ql-stroke" x1="8" x2="10" y1="14" y2="4"></line>
</svg></button>
<button title="Underline" class="ql-underline" type="button"><svg viewBox="0 0 18 18">
<path class="ql-stroke" d="M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3"></path>
<rect class="ql-fill" height="1" rx="0.5" ry="0.5" width="12" x="3" y="15"></rect>
</svg></button>
<button title="Strike" class="ql-strike" type="button"><svg viewBox="0 0 18 18">
<line class="ql-stroke ql-thin" x1="15.5" x2="2.5" y1="8.5" y2="9.5"></line>
<path class="ql-fill" d="M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z"></path>
<path class="ql-fill" d="M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z"></path>
</svg></button>
<button title="Ordered List" class="ql-list" value="ordered" type="button"><svg viewBox="0 0 18 18">
<line class="ql-stroke" x1="7" x2="15" y1="4" y2="4"></line>
<line class="ql-stroke" x1="7" x2="15" y1="9" y2="9"></line>
<line class="ql-stroke" x1="7" x2="15" y1="14" y2="14"></line>
<line class="ql-stroke ql-thin" x1="2.5" x2="4.5" y1="5.5" y2="5.5"></line>
<path class="ql-fill" d="M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z"></path>
<path class="ql-stroke ql-thin" d="M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156"></path>
<path class="ql-stroke ql-thin" d="M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109"></path>
</svg></button>
<button title="Unordered List" class="ql-list" value="bullet" type="button"><svg viewBox="0 0 18 18">
<line class="ql-stroke" x1="6" x2="15" y1="4" y2="4"></line>
<line class="ql-stroke" x1="6" x2="15" y1="9" y2="9"></line>
<line class="ql-stroke" x1="6" x2="15" y1="14" y2="14"></line>
<line class="ql-stroke" x1="3" x2="3" y1="4" y2="4"></line>
<line class="ql-stroke" x1="3" x2="3" y1="9" y2="9"></line>
<line class="ql-stroke" x1="3" x2="3" y1="14" y2="14"></line>
</svg></button>
<button title="Blockquote" class="ql-blockquote" type="button"><svg viewBox="0 0 18 18">
<rect class="ql-fill ql-stroke" height="3" width="3" x="4" y="5"></rect>
<rect class="ql-fill ql-stroke" height="3" width="3" x="11" y="5"></rect>
<path class="ql-even ql-fill ql-stroke" d="M7,8c0,4.031-3,5-3,5"></path>
<path class="ql-even ql-fill ql-stroke" d="M14,8c0,4.031-3,5-3,5"></path>
</svg></button>
<button title="Code Block" class="ql-code-block" type="button"><svg viewBox="0 0 18 18">
<polyline class="ql-even ql-stroke" points="5 7 3 9 5 11"></polyline>
<polyline class="ql-even ql-stroke" points="13 7 15 9 13 11"></polyline>
<line class="ql-stroke" x1="10" x2="8" y1="5" y2="13"></line>
</svg></button>
<button title="Link" class="ql-link" type="button"><svg viewBox="0 0 18 18">
<line class="ql-stroke" x1="7" x2="11" y1="7" y2="11"></line>
<path class="ql-even ql-stroke" d="M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z"></path>
<path class="ql-even ql-stroke" d="M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z"></path>
</svg></button>
<button title="Source Code" class="ql-sourcecode" data-wpde_button_name="sourcecode" type="button">{}</button>
<button title="Spoiler" class="ql-spoiler" data-wpde_button_name="spoiler" type="button">[+]</button>
<div class="wpd-editor-buttons-right">
<span class="wmu-upload-wrap" wpd-tooltip="Attach an image to this comment" wpd-tooltip-position="left"><label class="wmu-add"><i class="far fa-image"></i><input style="display:none;" class="wmu-add-files" type="file" name="wmu_files[]"
accept="image/*"></label></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wpd-form-foot" style="display:none;">
<div class="wpdiscuz-textarea-foot">
<div class="wpdiscuz-button-actions">
<div class="wmu-action-wrap">
<div class="wmu-tabs wmu-images-tab wmu-hide"></div>
</div>
</div>
</div>
<div class="wpd-form-row">
<div class="wpd-form-col-left">
<div class="wpdiscuz-item wc_name-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-user"></i>
</div>
<input id="wc_name-0_0" value="" required="required" aria-required="true" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Name*" maxlength="50" pattern=".{3,50}" title="">
<label for="wc_name-0_0" class="wpdlb">Name*</label>
</div>
<div class="wpdiscuz-item wc_email-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-at"></i>
</div>
<input id="wc_email-0_0" value="" required="required" aria-required="true" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*">
<label for="wc_email-0_0" class="wpdlb">Email*</label>
</div>
<div class="wpdiscuz-item wc_website-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-link"></i>
</div>
<input id="wc_website-0_0" value="" class="wc_website wpd-field" type="text" name="wc_website" placeholder="Website">
<label for="wc_website-0_0" class="wpdlb">Website</label>
</div>
<div class="wc-field-submit">
<label class="wpd_label" wpd-tooltip="Notify of new replies to this comment">
<input id="wc_notification_new_comment-0_0" class="wc_notification_new_comment-0_0 wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" checked="checked">
<span class="wpd_label__text">
<span class="wpd_label__check">
<i class="fas fa-bell wpdicon wpdicon-on"></i>
<i class="fas fa-bell-slash wpdicon wpdicon-off"></i>
</span>
</span>
</label>
<input id="wpd-field-submit-0_0" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Post Comment" aria-label="Post Comment">
</div>
</div>
<div class="wpd-form-col-right">
</div>
<div class="clearfix"></div>
</div>
</div>
<input type="hidden" class="wpdiscuz_unique_id" value="0_0" name="wpdiscuz_unique_id">
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="357251a98a"></p>
<p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js"
value="1716296529330">
<script>
document.getElementById("ak_js_1").setAttribute("value", (new Date()).getTime());
</script>
</p>
</form>
POST
<form method="post" enctype="multipart/form-data" data-uploading="false" class="wpd_comm_form wpd-secondary-form-wrapper">
<div class="wpd-field-comment">
<div class="wpdiscuz-item wc-field-textarea">
<div class="wpdiscuz-textarea-wrap ">
<div class="wpd-avatar">
<img alt="guest" src="https://embetronicx.com/wp-content/uploads/2020/05/avatar_146_146.png" srcset="https://embetronicx.com/wp-content/uploads/2020/05/avatar_146_146.png 2x" class="avatar avatar-56 photo" height="56" width="56">
</div>
<div id="wpd-editor-wraper-wpdiscuzuniqueid" style="display: none;">
<div id="wpd-editor-char-counter-wpdiscuzuniqueid" class="wpd-editor-char-counter"></div>
<label style="display: none;" for="wc-textarea-wpdiscuzuniqueid">Label</label>
<textarea id="wc-textarea-wpdiscuzuniqueid" name="wc_comment" class="wc_comment wpd-field"></textarea>
<div id="wpd-editor-wpdiscuzuniqueid"></div>
<div id="wpd-editor-toolbar-wpdiscuzuniqueid">
<button title="Bold" class="ql-bold"></button>
<button title="Italic" class="ql-italic"></button>
<button title="Underline" class="ql-underline"></button>
<button title="Strike" class="ql-strike"></button>
<button title="Ordered List" class="ql-list" value="ordered"></button>
<button title="Unordered List" class="ql-list" value="bullet"></button>
<button title="Blockquote" class="ql-blockquote"></button>
<button title="Code Block" class="ql-code-block"></button>
<button title="Link" class="ql-link"></button>
<button title="Source Code" class="ql-sourcecode" data-wpde_button_name="sourcecode">{}</button>
<button title="Spoiler" class="ql-spoiler" data-wpde_button_name="spoiler">[+]</button>
<div class="wpd-editor-buttons-right">
<span class="wmu-upload-wrap" wpd-tooltip="Attach an image to this comment" wpd-tooltip-position="left"><label class="wmu-add"><i class="far fa-image"></i><input style="display:none;" class="wmu-add-files" type="file" name="wmu_files[]"
accept="image/*"></label></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wpd-form-foot" style="display:none;">
<div class="wpdiscuz-textarea-foot">
<div class="wpdiscuz-button-actions">
<div class="wmu-action-wrap">
<div class="wmu-tabs wmu-images-tab wmu-hide"></div>
</div>
</div>
</div>
<div class="wpd-form-row">
<div class="wpd-form-col-left">
<div class="wpdiscuz-item wc_name-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-user"></i>
</div>
<input id="wc_name-wpdiscuzuniqueid" value="" required="required" aria-required="true" class="wc_name wpd-field" type="text" name="wc_name" placeholder="Name*" maxlength="50" pattern=".{3,50}" title="">
<label for="wc_name-wpdiscuzuniqueid" class="wpdlb">Name*</label>
</div>
<div class="wpdiscuz-item wc_email-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-at"></i>
</div>
<input id="wc_email-wpdiscuzuniqueid" value="" required="required" aria-required="true" class="wc_email wpd-field" type="email" name="wc_email" placeholder="Email*">
<label for="wc_email-wpdiscuzuniqueid" class="wpdlb">Email*</label>
</div>
<div class="wpdiscuz-item wc_website-wrapper wpd-has-icon">
<div class="wpd-field-icon"><i class="fas fa-link"></i>
</div>
<input id="wc_website-wpdiscuzuniqueid" value="" class="wc_website wpd-field" type="text" name="wc_website" placeholder="Website">
<label for="wc_website-wpdiscuzuniqueid" class="wpdlb">Website</label>
</div>
<div class="wc-field-submit">
<label class="wpd_label" wpd-tooltip="Notify of new replies to this comment">
<input id="wc_notification_new_comment-wpdiscuzuniqueid" class="wc_notification_new_comment-wpdiscuzuniqueid wpd_label__checkbox" value="comment" type="checkbox" name="wpdiscuz_notification_type" checked="checked">
<span class="wpd_label__text">
<span class="wpd_label__check">
<i class="fas fa-bell wpdicon wpdicon-on"></i>
<i class="fas fa-bell-slash wpdicon wpdicon-off"></i>
</span>
</span>
</label>
<input id="wpd-field-submit-wpdiscuzuniqueid" class="wc_comm_submit wpd_not_clicked wpd-prim-button" type="submit" name="submit" value="Post Comment" aria-label="Post Comment">
</div>
</div>
<div class="wpd-form-col-right">
</div>
<div class="clearfix"></div>
</div>
</div>
<input type="hidden" class="wpdiscuz_unique_id" value="wpdiscuzuniqueid" name="wpdiscuz_unique_id">
<p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="357251a98a"></p>
<p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js"
value="1716296529331">
<script>
document.getElementById("ak_js_2").setAttribute("value", (new Date()).getTime());
</script>
</p>
</form>
POST #
<form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-blog_subscription-2" data-blog="130803104" data-post_access_level="everybody">
<div id="subscribe-text">
<p>Enter your email address to receive the notifications of new posts.</p>
</div>
<p id="subscribe-email">
<label id="jetpack-subscribe-label" class="screen-reader-text" for="subscribe-field-blog_subscription-2"> Email Address </label>
<input type="email" name="email" required="required" value="" id="subscribe-field-blog_subscription-2" placeholder="Email Address">
</p>
<p id="subscribe-submit">
<input type="hidden" name="action" value="subscribe">
<input type="hidden" name="source" value="https://embetronicx.com/tutorials/automotive/autosar/application-layer-in-autosar-autosar-tutorials/">
<input type="hidden" name="sub-type" value="widget">
<input type="hidden" name="redirect_fragment" value="subscribe-blog-blog_subscription-2">
<input type="hidden" id="_wpnonce" name="_wpnonce" value="f60fe5884b"><input type="hidden" name="_wp_http_referer" value="/tutorials/automotive/autosar/application-layer-in-autosar-autosar-tutorials/"> <button type="submit"
class="wp-block-button__link" name="jetpack_subscriptions_widget"> Subscribe </button>
</p>
</form>
Text Content
WE VALUE YOUR PRIVACY We and our partners store and/or access information on a device, such as cookies and process personal data, such as unique identifiers and standard information sent by a device for personalised advertising and content, advertising and content measurement, audience research and services development. With your permission we and our partners may use precise geolocation data and identification through device scanning. You may click to consent to our and our 1429 partners’ processing as described above. Alternatively you may access more detailed information and change your preferences before consenting or to refuse consenting. Please note that some processing of your personal data may not require your consent, but you have a right to object to such processing. Your preferences will apply to this website only. You can change your preferences or withdraw your consent at any time by returning to this site and clicking the "Privacy" button at the bottom of the webpage. MORE OPTIONSAGREE Skip to content Menu * Home * Tutorials * Automotive * UDS Protocol Tutorials * AUTOSAR Tutorials * Bootloader Tutorials * STM32F7 Bootloader (ARM Cortex M7) Tutorial * STM32F103 (ARM Cortex M3) Bootloader Tutorials * STM32 MikroC Pro ARM Bootloader * Unit Testing Tutorials * Programming Language * C Tutorials * Embedded Interview Topics * Microcontroller Tutorials * Raspberry Pi Tutorials * Raspberry PI Pico Tutorials * 8051 Tutorials * PIC16F877A Tutorials * LPC2148 Tutorials * STM32 Tutorials * ESP32 * ESP-IDF Tutorials * NuttX RTOS * Linux * Linux Device Driver * RTOS * NuttX RTOS Tutorials * FreeRTOS Tutorials * RTX RTOS * Zephyr RTOS – STM32 Tutorials * Zephyr RTOS – ESP32 Tutorials * RT-Thread RTOS Tutorials * Technologies And Devices * PCB * VLSI * Uncategorized * B.E Projects * 8051 Projects * LPC2148 Projects * Others * Interview Topics * Embedded Companies in India * Video Tutorials * Product Reviews * About Us * Contact Us * FAQ * Trademark Details * Disclaimer * Privacy Policy * Advertise With Us * Guest Post * Hire Us * Testimonials * Log In * Free Online Gerber Viewer * PCB assembly & Box build Home → Tutorials → Automotive → AUTOSAR → Application Layer in AUTOSAR – AUTOSAR Tutorials Part 2 APPLICATION LAYER IN AUTOSAR – AUTOSAR TUTORIALS PART 2 by Kiruthika Tags Automotive, AUTOSAR, Tutorials Categories AUTOSAR Play Video PlaySkip BackwardSkip Forward Unmute Current Time 0:00 / Duration 50:13 Loaded: 1.02% 00:00 Stream Type LIVE Seek to live, currently behind liveLIVE Remaining Time -50:13 1x Playback Rate Chapters * Chapters Descriptions * descriptions off, selected Captions * captions settings, opens captions settings dialog * captions off, selected Audio Track * default, selected Picture-in-PictureFullscreen This is a modal window. Beginning of dialog window. Escape will cancel and close the window. TextColorWhiteBlackRedGreenBlueYellowMagentaCyanOpacityOpaqueSemi-TransparentText BackgroundColorBlackWhiteRedGreenBlueYellowMagentaCyanOpacityOpaqueSemi-TransparentTransparentCaption Area BackgroundColorBlackWhiteRedGreenBlueYellowMagentaCyanOpacityTransparentSemi-TransparentOpaque Font Size50%75%100%125%150%175%200%300%400%Text Edge StyleNoneRaisedDepressedUniformDrop shadowFont FamilyProportional Sans-SerifMonospace Sans-SerifProportional SerifMonospace SerifCasualScriptSmall Caps Reset restore all settings to the default valuesDone Close Modal Dialog End of dialog window. Advertisement Last Updated on: March 17th, 2024 This article is the continuation of the Series on AUTOSAR Tutorials and carries the discussion on AUTOSAR. The aim of this series is to provide easy and practical examples that anyone can understand. In the last article, we have seen the Introduction to AUTOSAR. In this tutorial, we are going to see the Application Layer in AUTOSAR – AUTOSAR Tutorials Part 2. Table of Contents Toggle * Application Layer in AUTOSAR – Introduction * Software Component (SWC) * Atomic SWC * Composition SWC * Runnable Entity * Init Runnable * Periodic Runnable * Server Runnable * Trigger points * Access point type * Ports * Port Interface * Sender/Receiver interface * Client/Server interface * Example * Port Prototypes * Connectors * Assembly connector * Delegate connector * Summary APPLICATION LAYER IN AUTOSAR – INTRODUCTION The application layer in AUTOSAR (AUTomotive Open System ARchitecture) is a crucial component within the overall software architecture of automotive systems. It is the top most layer in AUTOSAR Software Architecture, and it is responsible for executing the application software and managing the interaction between different software components. The application layer provides a standardized framework that enables seamless integration of various applications, such as vehicle functions, services, and features, across different ECUs (Electronic Control Units) in a vehicle. It helps to facilitate communication, data exchange, and coordination among these applications, ensuring the efficient and reliable operation of the entire automotive system. This layer consists of many software components (SWC) which execute the set of tasks to fulfill the functionality of the vehicle. Each SWC contains many runnable. These software components (SWC) are connected with the help of ports. These ports give communication between two SWCs as well as with BSW. SOFTWARE COMPONENT (SWC) The below image represents the typical view of Software component (SWC), The software component is a small application that is created for some specific functionality in ECU. The main purpose of having a software component is to make the software independent of hardware and make the software reusable. while creating a new component type under the application component type in the DaVinci Developer tool, the developer needs to select either one of the types mentioned below. There are 2 types of software components. they are, 1. Atomic SWC 2. Composition SWC ATOMIC SWC An atomic software component is a self-contained unit which is having application software. It encapsulates the implementation of the functionality. It only exposes the connection points to the outside world through the port prototype. Under Atomic SWC there are a few sub-types, 1. Application SWC – This is normal hardware-independent application software. 2. Sensor/Actuator SWC – This is used to handle sensor and Actuator input/outputs. 3. Non-volatile memory block SWC – This is used when we are using NVRAM. 4. Calibration parameter SWC- This is used for sharing calibration parameter values with other devices. 5. Complex device driver SWC- This is used when we are developing complex device drivers which are not supported by AUTOSAR. 6. Service SWC- This is used when we are using services provided by the service layer which is placed in the BSW layer. 7. Service proxy SWC- It serves as a proxy to one or more remote ECUs, providing internal services. Its primary function is to distribute vehicle mode information across the system. 8. ECU abstraction SWC- This is used to access the I/O by directly interacting with specific BSW modules. COMPOSITION SWC Composition SWC is a group of individual software components combined into one software component to make the ECU. This type of grouping facilitates abstracting SWCs and standardizing software development. RUNNABLE ENTITY As discussed earlier, application software components are having certain entities, those are called as the Runnable, which are basically embedded c logics. During configuration with the help of tools, a skeleton is generated in respective source files of SWCs, later developers must write their logic inside the skeleton to run the specific task. There are 3 types of runnable entities, 1. Init Runnable 2. Periodic Runnable 3. Server Runnable INIT RUNNABLE The Init Runnable is an important part of the AUTOSAR architecture as it allows the ECU to perform the necessary tasks during the initialization phase and prepare for normal operation. These can be used to verify that the controller is properly configured and ready to perform its intended function. PERIODIC RUNNABLE If an executable is configured as Periodic, it will be called periodically at the configured time. So the developer needs to give the minimum interval during configuration. SERVER RUNNABLE This is used to provide services to other components in the system. This is typically triggered by an external request, such as a request from another component to access certain data or perform a certain task. TRIGGER POINTS While configuring runnable developers must mention the trigger point type as well as access points, and trigger points, it tells under which condition the runnable needs to be triggered or called. There are few types of trigger points are mentioned below, 1. Init 2. Periodic 3. Background 4. On-data reception 5. On-data reception ACCESS POINT TYPE In case if the runnable wants to use the port prototype, the developer must mention the access point type. The types of access points are, 1. Read data 2. Write data 3. Invoke operations 4. Read received mode PORTS In AUTOSAR, all communication between SWC and lower layers is done using ports. A port is a channel or connection used to transmit data between SWCs or BSW modules. Since AUTOSAR is intended for standardization, the data that will be transferred between entities must be known at configuration time. Ports belong to exactly one SWC at a time. The port may or may not be connected to the other end. Connectors are used to connect two ports. There are two types of ports, 1. Required Ports(R-Port)- This type of port is used when data is to be received or required. 2. Provider Ports(P-Port)- – This type of port is used when data is to be transmitted or SWC is a provider of some service to other entities. PORT INTERFACE The Port interface acts as a door between software components (SWC) to communicate with one another. The term Port Interface refers to the highest level of description of information transferred between components in an AUTOSAR system. The Port interface is reusable, and it is configured during the system configuration phase. There are two types of port interfaces, 1. Sender/Receiver interface 2. Client/Server interface SENDER/RECEIVER INTERFACE In this type of communication interface data elements are transferred from one software component to another. The data element type may be int, float, char, array, and record. This interface is mostly used between application software components. A port may contain many data elements. The communication between software components is 1: n or n:1. Syntax Rte_Read_<port name>_<data element> Rte_Write_<port name> _<data element> CLIENT/SERVER INTERFACE The Client calls an operation of a Server asynchronously or synchronously. Communication between client and server is 1:1 or n:1. Operations can be called individually. This communication interface takes place most frequently between the application and services of the Basic Software (diagnostics, memory management, etc.). The operation may be requesting for turn on the light and get some data from memory, etc., Syntax Rte_Call_<port_name>_<operations_name> EXAMPLE To understand better the concept of SR Interface and CS Interface let’s take the below example, We have two sensor actuators one is for right door motion and another one is for left door motion called Right Door Sensor, Left Door Sensor, and right Door Sensor is a Sender port(P- Port) it will write the door state and Left Door State, and the Right Door State is an SWC’s is a Receiver Port(R-Port) it will read the door state. CDD SWC for the Right door state and CDD SWC for the Left door state are acting as Server Ports (P- Port) it will get the input from Actuators, and it will serve the door state and Interior Light state acting as a Client Port(R-Port) and it will get the interior light state whether it is ON or OFF based on door state. PORT PROTOTYPES Port Prototypes are intended to be used for attaching Software Connectors that establish an actual connection between SWC prototypes. CONNECTORS A connector is used to complete the connection between the port prototypes. There are 2 types of connectors, 1. Assembly connector 2. Delegate connector ASSEMBLY CONNECTOR Assembly connectors are used to connect two ports in a single software component. DELEGATE CONNECTOR Delegation connectors are used when some port of SWC needs to be exposed to the outer world of the Composition (ECU). SUMMARY The application layer in AUTOSAR is a fundamental part of the automotive software architecture. Its main purpose is to execute application software and facilitate communication between different software components. It provides a standardized framework for integrating various vehicle functions, services, and features across multiple ECUs. The application layer plays a vital role in ensuring the efficient and reliable operation of the automotive system as a whole. In our next article, we will discuss the Run Time Environment (RTE) Layer in AUTOSAR. You can also read the below tutorials. Linux Device Driver TutorialsC Programming Tutorials FreeRTOS TutorialsNuttX RTOS Tutorials RTX RTOS TutorialsInterrupts Basics I2C Protocol – Part 1 (Basics)I2C Protocol – Part 2 (Advanced Topics) STM32 TutorialsLPC2148 (ARM7) Tutorials PIC16F877A Tutorials8051 Tutorials Unit Testing in C TutorialsESP32-IDF Tutorials Raspberry Pi TutorialsEmbedded Interview Topics Reset Sequence in ARM Cortex-M4BLE Basics VIC and NVIC in ARMSPI – Serial Peripheral Interface Protocol STM32F7 Bootloader TutorialsRaspberry PI Pico Tutorials STM32F103 Bootloader TutorialsRT-Thread RTOS Tutorials Zephyr RTOS Tutorials – STM32Zephyr RTOS Tutorials – ESP32 AUTOSAR TutorialsUDS Protocol Tutorials Product ReviewsSTM32 MikroC Bootloader Tutorial VHDL Tutorials Kiruthika Embedded Software Developer who is passionate about Embedded Systems. Hits (since 1 July 2022) - 16,429 SHARE THIS: * Share * * WhatsApp * * Telegram * Email * * Print * More * * Bewaren * RELATED AUTOSAR INTRODUCTION – AUTOSAR TUTORIALS PART 1 This article is the first part of the Series on AUTOSAR Tutorials and carries the discussion on AUTOSAR. The aim of this series is to provide easy and practical examples that anyone can understand. In this article, we will see an AUTOSAR Introduction. AUTOSAR Introduction What is AUTOSAR? In the Automotive industry… In "AUTOSAR" RUN TIME ENVIRONMENT (RTE) LAYER – AUTOSAR TUTORIALS PART 3 This article is the continuation of the Series on AUTOSAR Tutorials and carries the discussion on AUTOSAR. The aim of this series is to provide easy and practical examples that anyone can understand. In the last article, we have seen the Application Layer in AUTOSAR. In this tutorial, we are going to see… In "AUTOSAR" UDS PROTOCOL INTRODUCTION (UNIFIED DIAGNOSTIC SERVICES) – UDS PROTOCOL TUTORIAL PART 1 This article is the first part of the Series on the UDS Protocol and carries the discussion on the Unified Diagnostic Services Protocol. The aim of this series is to provide easy and practical examples that anyone can understand. This is the UDS Protocol Introduction (Unified Diagnostic Services) - UDS… In "UDS Protocol" Categories AUTOSAR Tags Automotive, AUTOSAR, Tutorials Unit Testing in C Part 5 – Mock using CMock in Embedded Interrupts Example Program in Linux Kernel – Linux Device Driver Tutorial – Part 13 Subscribe Login Notify of new follow-up comments new replies to my comments Label {} [+] Name* Email* Website Δ Label {} [+] Name* Email* Website Δ This site uses Akismet to reduce spam. Learn how your comment data is processed. 1 Comment Oldest Newest Most Voted Inline Feedbacks View all comments Amit Guest February 28, 2024 6:37 PM Hi When we can get part3 of this series 0 Reply Load More Comments BROWSE BY TAGS 8051 (33) ADC (7) Automotive (9) Bootloader (10) Bottom Half (12) c (49) Character Device Driver (50) Cortex-M0+ (16) Cortex-M3 (19) cortex-m4 (38) Cortex-M7 (32) CubeIDE (7) DC Motor (8) Device Driver (53) Diagnostics (6) esp32 (12) FreeRTOS (15) GPIO (26) GSM (7) HAL (7) I2C (14) Interrupts (18) keypad (6) LCD Interfacing (51) LED Interfacing (29) Linux (53) LPC2148 (41) NuttX RTOS (7) PIC16F877A (26) Raspberry PI (15) RT-Thread RTOS (9) RTOS (34) Sensor (24) SPI (9) ST Link (8) stm32 (38) sysfs (10) Tasklet (6) Timer/Counter (8) Tutorials (262) UART (37) UDS Protocol (6) USB (6) Vilambaram (28) Workqueue (6) RECENT POSTS * CheckRed – Strengthen security across multi-cloud environments with CIEM * Quick Ways to Fix “UnrecognizedDatabase Format” Error in MS Access * How Do SOCKS Proxies Work? A Comprehensive Guide for Everyone * WebP to JPG Conversion and Compatibility of Images * What is my IP Address? Here’s How to Find It Out in Seconds SUBSCRIBE TO THE BLOG VIA EMAIL Enter your email address to receive the notifications of new posts. Email Address Subscribe Join 292 other subscribers Wanna Disable Ads in EmbeTronicX? Be a premium member!!! Register Premium members, Please Login [75% OFF ] Use code – ETX75 One Month – 4 USD (Rs.320) 1 USD (Rs.80) One Year – 40 USD (Rs.3200) 10 USD (Rs.800) If you want to appreciate EmbeTronicX, You Should Consider: MOST VIEWED POSTS SINCE JUNE 2022 * IOCTL in Linux (I/O Control) – Linux Device Driver Tutorial Part 8 (332,764) * Linux Device Driver Tutorial – Part 1 | Introduction (221,302) * Fixed: Prolific PL2303TA USB to Serial Windows 11 Problem (173,700) * Diagnostics and Communication Management Function Group – UDS Protocol Tutorial Part 2 (173,081) * Sysfs in Linux Kernel – Linux Device Driver Tutorial Part 11 (156,458) * SPI Device Driver Tutorial – Linux Device Driver Tutorial Part 47 (116,465) * Device File Creation – Linux Device Driver Tutorial Part 5 (113,582) * UDS Protocol Introduction (Unified Diagnostic Services) – UDS Protocol Tutorial Part 1 (104,977) * First Linux Device Driver – Linux Device Driver Tutorial Part 2 (104,266) * Simple STM32 Bootloader Implementation – Bootloader Tutorial Part 3 (97,721) AUTOMOTIVE TUTORIALS UDS Protocol Tutorials UDS Protocol Introduction (Unified Diagnostic Services) – UDS Protocol Tutorial Part 1 Diagnostics and Communication Management – UDS Protocol Tutorial Part 2 Data Transmission – UDS Protocol Tutorial Part 3 Input Output Control – UDS Protocol Tutorial Part 4 Routine Control Unit – UDS Protocol Tutorial Part 5 Upload Download Function Unit – UDS Protocol Tutorial Part 6 AUTOSAR Tutorials AUTOSAR Introduction – AUTOSAR Tutorials Part 1 Application Layer in AUTOSAR – AUTOSAR Tutorials Part 2 Run Time Environment (RTE) Layer – AUTOSAR Tutorials Part 3 REVIEWS Kaiweets KM601 Smart Digital Multimeter Review HT208D Inrush Clamp Meter (6000 Counts) – Review Automatic Self Adjusting Wire Stripper (KAIWEETS KWS-103) – Review KAIWEETS HT118A Multimeter – Review and How to Use? Contact Us | Advertise with Us | Disclaimer | FAQ | Trademark | Privacy Policy | Guest Post Copyright EmbeTronicX 2024 © All Rights Reserved. wpDiscuz Insert Table of Contents × * Application Layer in AUTOSAR – Introduction * Software Component (SWC) * Atomic SWC * Composition SWC * Runnable Entity * Init Runnable * Periodic Runnable * Server Runnable * Trigger points * Access point type * Ports * Port Interface * Sender/Receiver interface * Client/Server interface * Example * Port Prototypes * Connectors * Assembly connector * Delegate connector * Summary → Table of Contents