
    
    <br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/pcbassembly/www/www/blog/wp-content/plugins/dt-author-box/dt_authorbox.php:157) in <b>/home/pcbassembly/www/www/blog/wp-includes/rest-api/class-wp-rest-server.php</b> on line <b>1719</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /home/pcbassembly/www/www/blog/wp-content/plugins/dt-author-box/dt_authorbox.php:157) in <b>/home/pcbassembly/www/www/blog/wp-includes/rest-api/class-wp-rest-server.php</b> on line <b>1719</b><br />
{"id":537,"date":"2021-04-09T07:25:36","date_gmt":"2021-04-09T07:25:36","guid":{"rendered":"https:\/\/www.pnconline.com\/blog\/?p=537"},"modified":"2023-06-09T10:36:00","modified_gmt":"2023-06-09T10:36:00","slug":"beyond-pcb-assembly-services-board-support-package-development","status":"publish","type":"post","link":"https:\/\/www.pnconline.com\/blog\/beyond-pcb-assembly-services-board-support-package-development\/","title":{"rendered":"Beyond PCB Assembly Services, Board Support Package Development"},"content":{"rendered":"<p><strong>What is a Board Support Package?<\/strong><\/p>\n<p>A board support package (BSP) is a collection of essential low level software applications configured for a specific microprocessor and its associated hardware. It supplies the drivers for all the hardware in the system andcontainsa bootloader to initialize the microprocessor and hardware prior to loading the operating system. The package may contain additional low level software to assist the developer in initializing the operating system. The BSP can also include a root file system, and a utility to configure the microprocessor and other hardware<em>.<\/em>By using PNC to develop the BSP, it will allow them to design around their <a href=\"https:\/\/www.pnconline.com\/capabilities.php\">circuit board fabrication<\/a> capabilities and process.<\/p>\n<p>Board Support Packages are specific to a family of microprocessors and to a specific operating system.\u00a0 A typical BSP may contain drivers and initialization code for:<\/p>\n<ul>\n<li>Initializing the microprocessor<\/li>\n<li>The parallel and serial buses<\/li>\n<li>The volatile and nonvolatile memory<\/li>\n<li>The display and graphics card,<\/li>\n<li>Digital and analog I\/O<\/li>\n<li>Camera, wireless modules, user input devices etc.<\/li>\n<\/ul>\n<p>While a BSP for the hardware is the first requirement for developing a product with embedded software, this doesn\u2019t mean that every company developing embedded software needs to develop their own BSP with the drivers for their specific hardware configuration. There are five reasons to let an outside BSP developer like PNC develop the BSP for your embedded application.<\/p>\n<p><strong>1. The BSP supplied by the microprocessor manufacture is an incomplete solution<\/strong><\/p>\n<p>The microprocessor manufacturer will typically supply a rudimentary BSP with their evaluation board.\u00a0\u00a0 This is because manufacturers know that making it easier for the developer to work with the microprocessor is helpful to being selected for the final design and <a href=\"https:\/\/www.pnconline.com\/blog\/category\/pcb-assembly\/\">pcb assembly<\/a> process.\u00a0\u00a0 However, the manufacturer\u2019s BSP may not have the drivers for the specific hardware in your design &#8211; the only way to ensure a BSP fully supports your hardware design is to have it customized for you.<\/p>\n<p><strong>2. Developing device drivers is a specialized skill<\/strong><\/p>\n<p>Developing the drivers and initialization code BSP requires detailed knowledge of the microprocessor and its peripheral hardware.\u00a0 Most developers writing applications running on an OS do not have the requisite expertise to write the hardware driversunderneath that OS.\u00a0 On the other hand, a group focused only on BSP development like the team at PNC obtains that expertise by working with many hardware platforms every year, and by developing robust tested reference code for common peripherals such as displays and USB ports.<\/p>\n<p><strong>3.\u00a0A BSP is needed only once for a product<\/strong><\/p>\n<p>A BSP is needed near the beginning of an embedded software product to allow the developers to work with the target hardware instead of an evaluation <a href=\"https:\/\/www.pnconline.com\/blog\/category\/pc-board\/\">PC board<\/a> or emulation software. Once all drivers are debugged, however, the BSP rarely needs to be touched again except for occasional updates to address hardware end-of-life issues.\u00a0 This is different than the product\u2019s application, which may see multiple releases over the life of the product.\u00a0 Since BSP updates are so infrequent it does not make sense for an organization to maintain that highly specialized expertise for the months or years between BSP updates.<\/p>\n<p><strong>4. The BSP and associated drivers are invisible to the customer<\/strong><\/p>\n<p>Application software that meets customer needs is a close collaboration between developers, product management, marketing, and sales.\u00a0 Any time spent by the in-house team developing a BSP is time not spent developing features the customer will see and use.\u00a0 Outsourcing the invisible aspects of the product like the BSP allows the development team to stay focused on the customer.<\/p>\n<p><strong>5. Outsourcing the BSP can accelerate product development<\/strong><\/p>\n<p>Handing off the BSP to an outside supplier like PNC means that the team\u2019s developers are not tied down developing it internally.\u00a0 The BSP supplier can develop the BSP incrementally starting with core functionality followed by drivers for some of the less critical hardware once the development team is ready for it.\u00a0 The outside supplier also brings deep expertise to the driver development, meaning driver development takes less time, and works the first time. The most beneficial reason for PNC to develop your BSP is that they can also fabricate PCB\u2019s as well having in house <a href=\"https:\/\/www.pnconline.com\/pcbassembly.php\">pcb assembly services<\/a>.<\/p>\n<p>Talk to the software team at PNC the next time you have a time critical embedded project.\u00a0 Let PNC help you with your Board Support Package, device drivers, operating systems porting, or protocol stacks development.<\/p>\n<div class=\"addtoany_share_save_container addtoany_content_bottom\"><div class=\"a2a_kit a2a_kit_size_32 addtoany_list a2a_target\" id=\"wpa2a_1\"><a class=\"a2a_button_facebook\" href=\"http:\/\/www.addtoany.com\/add_to\/facebook?linkurl=https%3A%2F%2Fwww.pnconline.com%2Fblog%2Fbeyond-pcb-assembly-services-board-support-package-development%2F&amp;linkname=Beyond%20PCB%20Assembly%20Services%2C%20Board%20Support%20Package%20Development\" title=\"Facebook\" rel=\"nofollow\" target=\"_blank\"><\/a><a class=\"a2a_button_twitter\" href=\"http:\/\/www.addtoany.com\/add_to\/twitter?linkurl=https%3A%2F%2Fwww.pnconline.com%2Fblog%2Fbeyond-pcb-assembly-services-board-support-package-development%2F&amp;linkname=Beyond%20PCB%20Assembly%20Services%2C%20Board%20Support%20Package%20Development\" title=\"Twitter\" rel=\"nofollow\" target=\"_blank\"><\/a><a class=\"a2a_button_google_plus\" href=\"http:\/\/www.addtoany.com\/add_to\/google_plus?linkurl=https%3A%2F%2Fwww.pnconline.com%2Fblog%2Fbeyond-pcb-assembly-services-board-support-package-development%2F&amp;linkname=Beyond%20PCB%20Assembly%20Services%2C%20Board%20Support%20Package%20Development\" title=\"Google+\" rel=\"nofollow\" target=\"_blank\"><\/a><a class=\"a2a_dd addtoany_share_save\" href=\"https:\/\/www.addtoany.com\/share_save\"><\/a>\n<script type=\"text\/javascript\"><!--\nwpa2a.script_load();\n\/\/--><\/script>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>What is a Board Support Package? A board support package (BSP) is a collection of essential low level software applications configured for a specific microprocessor and its associated hardware. It supplies the drivers for all the hardware in the system andcontainsa bootloader to initialize the microprocessor and hardware prior to loading the operating system. The &hellip; <a href=\"https:\/\/www.pnconline.com\/blog\/beyond-pcb-assembly-services-board-support-package-development\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Beyond PCB Assembly Services, Board Support Package Development<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":540,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[62,15,28,22,17,21,4,59],"tags":[68,66,34,41,40,36],"_links":{"self":[{"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/posts\/537"}],"collection":[{"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/comments?post=537"}],"version-history":[{"count":1,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/posts\/537\/revisions"}],"predecessor-version":[{"id":539,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/posts\/537\/revisions\/539"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/media\/540"}],"wp:attachment":[{"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/media?parent=537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/categories?post=537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pnconline.com\/blog\/wp-json\/wp\/v2\/tags?post=537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}