<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mesh SDK 3.0.0 assertion GATT provision er when running mesh from main loop</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/42006/mesh-sdk-3-0-0-assertion-gatt-provision-er-when-running-mesh-from-main-loop</link><description>Hello: 
 
 I am upgrading my application to use Mesh SDK 3.0.0 (I was at 2.1.1). In my application, I process the mesh from the main loop (per the instruction in the Interrupt Priority levels section of the documentation ) 
 
 My mesh_init() looks like</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 31 Dec 2018 22:41:10 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/42006/mesh-sdk-3-0-0-assertion-gatt-provision-er-when-running-mesh-from-main-loop" /><item><title>RE: Mesh SDK 3.0.0 assertion GATT provision er when running mesh from main loop</title><link>https://devzone.nordicsemi.com/thread/163311?ContentTypeID=1</link><pubDate>Mon, 31 Dec 2018 22:41:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eacf83e2-0c24-4665-a967-2cac82f3cfcc</guid><dc:creator>natersoz</dc:creator><description>&lt;p&gt;The asserts are happening for a reason. I have seen Nordic&amp;#39;s softdevice assert when you use resources which conflict with the softdevice. For instance: if you write to memory reserved for the softdevice stack. It will assert. Unfortunately the error provided in the error handler may not be all that informative, it is better to have Nordic call the error handler and abort operation rather than continue along while your app conflicts with softdevice resources.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh SDK 3.0.0 assertion GATT provision er when running mesh from main loop</title><link>https://devzone.nordicsemi.com/thread/163303?ContentTypeID=1</link><pubDate>Mon, 31 Dec 2018 14:51:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:86a1e871-f3cb-43f4-803a-812ccd31774f</guid><dc:creator>emh203</dc:creator><description>&lt;p&gt;Just an FYI:&amp;nbsp; &amp;nbsp;The mesh init snippet was to just show the IRQ priority setting.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In this case, the assertion is generated somewhere in the soft device during run-time when using the nRF mesh app for provisioning.&amp;nbsp; I have a debugger attached and the assertion is happening in the software device.&amp;nbsp; &amp;nbsp;I really wish the software device was just a set a files we could actually debug instead of a binary block.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The static assertions are very scary for production as there might be a rare occasion when a device can lock up.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Mesh SDK 3.0.0 assertion GATT provision er when running mesh from main loop</title><link>https://devzone.nordicsemi.com/thread/163260?ContentTypeID=1</link><pubDate>Sat, 29 Dec 2018 22:15:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:91032ce5-3fed-4ed9-855a-4b40dc95aa87</guid><dc:creator>natersoz</dc:creator><description>&lt;p&gt;I have not tried the mesh features, but here are some ideas:&lt;/p&gt;
&lt;p&gt;1. Instead of using the ERROR_CHECK macro, handle the error locally:&lt;/p&gt;
&lt;p&gt;uint32_t const error_code = mesh_app_uuid_gen(dev_uuid, node_uuid_prefix, NODE_UUID_PREFIX_LEN);&lt;/p&gt;
&lt;p&gt;Now you can either log the error or access it using the debugger. The error code will provide insight into what is happening.&lt;/p&gt;
&lt;p&gt;I hate Nordic&amp;#39;s use of these macros BTW. I would discourage their usage completely.&lt;/p&gt;
&lt;p&gt;2. You realize that the softdevice reserves IRQ priorities 0, 1, 4 for itself. The softdevice will (likely) send you an assert when you use their reserved resources.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>