<?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>Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/56073/ozone-settings-with-bootloader</link><description>Hello, 
 I tried to configure Ozone for aws_fota sample without any success. I loaded elf files but one is debuging mcu boot and the other never access to the main. Do someone have an idea please ?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 14 Jan 2020 09:51:49 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/56073/ozone-settings-with-bootloader" /><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228985?ContentTypeID=1</link><pubDate>Tue, 14 Jan 2020 09:51:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad0758ed-5c73-4610-95f1-6ddd8ec0d176</guid><dc:creator>Fabien Comte</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I fixed that by adding this in the Ozone configuration that you proposed.&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color:#ffffff;"&gt;void TargetDownload (void) {&amp;nbsp; &lt;br /&gt;Target.LoadMemory(&amp;quot;$(ProjectDir)/build_nrf9160_pca10090ns/zephyr/merged.hex&amp;quot;, 0);&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; &lt;br /&gt;} &lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228935?ContentTypeID=1</link><pubDate>Tue, 14 Jan 2020 07:24:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8ce7777d-c99b-4ff3-8f43-1265b7b4cd76</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Thanks for confirming. I&amp;nbsp;guess it&amp;#39;s possible that the .elf and .hex file have different padding rules and thus cause the boot validation to fail (results in a different hash digest or checksum). It&amp;#39;s something we should more look into.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228886?ContentTypeID=1</link><pubDate>Mon, 13 Jan 2020 16:24:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c0e09f2-efba-44c1-8817-78f7b908ce3d</guid><dc:creator>Fabien Comte</dc:creator><description>&lt;p&gt;&lt;span style="background-color:#ffffff;"&gt;Hello,&lt;br /&gt;Thank you Vidar, you fixed my mistake, I was using &amp;quot;download &amp;amp; reset program&amp;quot;, not &amp;quot;attach to running program&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228743?ContentTypeID=1</link><pubDate>Mon, 13 Jan 2020 09:31:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ef31870f-fe0e-4494-a7bf-1ba9b66ae40e</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;It worked Ozone 3.10 as well. Here is what I did:&lt;/p&gt;
&lt;p&gt;1. Loaded the merged.hex with SES&lt;/p&gt;
&lt;p&gt;2. Opened the Ozone project which loads the application .elf file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. Selected &amp;quot;attached to running programming&amp;quot; followed by &amp;quot;Reset &amp;amp; break at symbol&amp;quot;.&amp;nbsp; As shown below, this made the program halt in main().&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-b3b1b1ed40784339b1597b318d96119d/pastedimage1578906415950v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;But I&amp;#39;m not sure how good Ozone supports debugging of multiple images at the same time. The File.Load() command &amp;quot;replace any previously loaded debug symbols&amp;quot;. Maybe there is another command to load additional debug symbols. SES has that option.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228515?ContentTypeID=1</link><pubDate>Fri, 10 Jan 2020 09:45:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb4c5f69-a408-4546-aa21-81ec0de23207</guid><dc:creator>Fabien Comte</dc:creator><description>&lt;p&gt;My Ozone project is just your configuration file that target an aws_fota sample built with SES.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228507?ContentTypeID=1</link><pubDate>Fri, 10 Jan 2020 09:21:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd84f4f1-1cc9-48d8-8cfc-df80b2da488f</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello, &lt;/p&gt;
&lt;p&gt;I can try again with Ozone 3.10 to see if I can replicate it. Do you mind sharing your Ozone project?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/228503?ContentTypeID=1</link><pubDate>Fri, 10 Jan 2020 09:09:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e6b2f88d-c6bf-49bf-88d0-2969a3dec3bb</guid><dc:creator>Fabien Comte</dc:creator><description>&lt;p&gt;Hello Vidar,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do you have any another idea about that ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/227481?ContentTypeID=1</link><pubDate>Fri, 03 Jan 2020 17:28:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b9739c2e-f5c5-451f-9ccf-92606046cfc4</guid><dc:creator>Fabien Comte</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;It does&amp;#39;nt work for me.&lt;/p&gt;
&lt;p&gt;My configuration is Windows 10 x64, Ozone 3.10a, J Link 6.54c&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Ozone settings with bootloader</title><link>https://devzone.nordicsemi.com/thread/227344?ContentTypeID=1</link><pubDate>Fri, 03 Jan 2020 08:26:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0560962e-c538-43ca-86af-a96780eed771</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Have you commented the AfterTargetReset() and&amp;nbsp;AfterTargetDownload() implementation in your Ozone project? Those will by default make the program jump directly to the start of the executable you are currently debugging.&amp;nbsp;i.e.,&amp;nbsp;&amp;nbsp;cause the MCUBOOT/SPM part of the boot sequence to be skipped if you are attempting to debug the main app.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ozone *.jdebug project file I used to debug the aws fota sample:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/*********************************************************************
*               (c) SEGGER Microcontroller GmbH                      *
*                        The Embedded Experts                        *
*                           www.segger.com                           *
**********************************************************************
                                                                      
File          :                                                     
Created       : 03 Jan 2020  9:10                                                    
Ozone Version : V2.70e                                                    
*/

/*********************************************************************
*                                                                     
*       OnProjectLoad                                                 
*                                                                     
* Function description                                                
*   Project load routine. Required.                                   
*                                                                     
**********************************************************************
*/                                                                    
void OnProjectLoad (void) {
  //
  // Dialog-generated settings
  //
  Project.AddPathSubstitute (&amp;quot;C:/Users/vibe/Desktop&amp;quot;, &amp;quot;$(ProjectDir)&amp;quot;);
  Project.AddPathSubstitute (&amp;quot;c:/users/vibe/desktop&amp;quot;, &amp;quot;$(ProjectDir)&amp;quot;);
  Project.SetDevice (&amp;quot;nRF9160&amp;quot;);
  Project.SetHostIF (&amp;quot;USB&amp;quot;, &amp;quot;&amp;quot;);
  Project.SetTargetIF (&amp;quot;SWD&amp;quot;);
  Project.SetTIFSpeed (&amp;quot;1 MHz&amp;quot;);
  Project.AddSvdFile (&amp;quot;$(InstallDir)/Config/CPU/Cortex-M33F.svd&amp;quot;);
  Project.AddSvdFile (&amp;quot;$(InstallDir)/Config/Peripherals/ARMv7M.svd&amp;quot;);
  //
  // User settings
  //
  File.Open (&amp;quot;C:/vidar/workspace/ncs/nrf/samples/nrf9160/aws_fota/build_nrf9160_pca10090ns/zephyr/zephyr.elf&amp;quot;);
}

/*********************************************************************
*                                                                     
*       OnSnapshotLoad                                                
*                                                                     
* Function description                                                
*   Optional event handler, called upon loading a snapshot.           
*                                                                     
* Additional information                                              
*   This function is used to restore the target state in cases        
*   where values cannot simply be written to the target.              
*   Typical use: GPIO clock needs to be enabled, before               
*   GPIO is configured.                                               
*                                                                     
**********************************************************************
*/                                                                    
//void OnSnapshotLoad (void) {                                        
//}                                                                   

/*********************************************************************
*                                                                     
*       OnSnapshotSave                                                
*                                                                     
* Function description                                                
*   Optional event handler, called upon saving a snapshot.            
*                                                                     
* Additional information                                              
*    This function is usually used to save values of the target       
*    state which can either not be trivially read,                    
*    or need to be restored in a specific way or order.               
*    Typically use: Memory Mapped Registers,                          
*    such as PLL and GPIO configuration.                              
*                                                                     
**********************************************************************
*/                                                                    
//void OnSnapshotSave (void) {                                        
//}                                                                   

/*********************************************************************
*                                                                     
*      TargetReset                                                    
*                                                                     
* Function description                                                
*   Replaces the default target device reset routine. Optional.       
*                                                                     
* Notes                                                               
*   This example demonstrates the usage when                          
*   debugging a RAM program on a Cortex-M target device               
*                                                                     
**********************************************************************
*/                                                                    
//void TargetReset (void) {                                           
//                                                                    
//  unsigned int SP;                                                  
//  unsigned int PC;                                                  
//  unsigned int VectorTableAddr;                                     
//                                                                    
//  VectorTableAddr = Program.GetBaseAddr();                          
//                                                                    
//  if (VectorTableAddr != 0xFFFFFFFF) {                              
//    SP = Target.ReadU32(VectorTableAddr);                           
//    Target.SetReg(&amp;quot;SP&amp;quot;, SP);                                      
//  } else {                                                          
//    Util.Log(&amp;quot;Project file error: failed to get program base&amp;quot;);   
//  }                                                                 
//                                                                    
//  PC = Elf.GetEntryPointPC();                                       
//                                                                    
//  if (PC != 0xFFFFFFFF) {                                           
//    Target.SetReg(&amp;quot;PC&amp;quot;, PC);                                      
//  } else if (VectorTableAddr != 0xFFFFFFFF) {                       
//    PC = Target.ReadU32(VectorTableAddr + 4);                       
//    Target.SetReg(&amp;quot;PC&amp;quot;, PC);                                      
//}
/*********************************************************************
*                                                                     
*       BeforeTargetReset                                             
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void BeforeTargetReset (void) {                                     
//}                                                                   

/*********************************************************************
*                                                                     
*       AfterTargetReset                                              
*                                                                     
* Function description                                                
*   Event handler routine.                                            
*    - Sets the PC register to program reset value.                   
*    - Sets the SP register to program reset value on Cortex-M.       
*                                                                     
**********************************************************************
*/ 

                                                                   
/* void AfterTargetReset (void) {
  unsigned int SP;                                                
  unsigned int PC;                                                
  unsigned int VectorTableAddr;                                   
                                                                  
  VectorTableAddr = Elf.GetBaseAddr();                            
                                                                  
  if (VectorTableAddr != 0xFFFFFFFF) {                            
    SP = Target.ReadU32(VectorTableAddr);                         
    Target.SetReg(&amp;quot;SP&amp;quot;, SP);                                    
  } else {                                                        
    Util.Log(&amp;quot;Project file error: failed to get program base&amp;quot;); 
  }                                                               
                                                                  
  PC = Elf.GetEntryPointPC();                                     
                                                                  
  if (PC != 0xFFFFFFFF) {                                         
    Target.SetReg(&amp;quot;PC&amp;quot;, PC);                                    
  } else if (VectorTableAddr != 0xFFFFFFFF) {                     
    PC = Target.ReadU32(VectorTableAddr + 4);                     
    Target.SetReg(&amp;quot;PC&amp;quot;, PC);                                    
  }
} */

/*********************************************************************
*                                                                     
*       DebugStart                                                    
*                                                                     
* Function description                                                
*   Replaces the default debug session startup routine. Optional.     
*                                                                     
**********************************************************************
*/                                                                    
//void DebugStart (void) {                                            
//}                                                                   

/*********************************************************************
*                                                                     
*       TargetConnect                                                 
*                                                                     
* Function description                                                
*   Replaces the default target IF connection routine. Optional.      
*                                                                     
**********************************************************************
*/                                                                    
//void TargetConnect (void) {                                         
//}                                                                   

/*********************************************************************
*                                                                     
*       BeforeTargetConnect                                           
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void BeforeTargetConnect (void) {                                   
//}                                                                   

/*********************************************************************
*                                                                     
*       AfterTargetConnect                                            
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void AfterTargetConnect (void) {                                    
//}                                                                   

/*********************************************************************
*                                                                     
*       TargetDownload                                                
*                                                                     
* Function description                                                
*   Replaces the default program download routine. Optional.          
*                                                                     
**********************************************************************
*/                                                                    
//void TargetDownload (void) {                                        
//}                                                                   

/*********************************************************************
*                                                                     
*       BeforeTargetDownload                                          
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void BeforeTargetDownload (void) {                                  
//}                                                                   

/*********************************************************************
*                                                                     
*      AfterTargetDownload                                            
*                                                                     
* Function description                                                
*   Event handler routine.                                            
*    - Sets the PC register to program reset value.                   
*    - Sets the SP register to program reset value on Cortex-M.       
*                                                                     
**********************************************************************
*/                                                                    
/* void AfterTargetDownload (void) {
  unsigned int SP;                                                
  unsigned int PC;                                                
  unsigned int VectorTableAddr;                                   
                                                                  
  VectorTableAddr = Elf.GetBaseAddr();                            
                                                                  
  if (VectorTableAddr != 0xFFFFFFFF) {                            
    SP = Target.ReadU32(VectorTableAddr);                         
    Target.SetReg(&amp;quot;SP&amp;quot;, SP);                                    
  } else {                                                        
    Util.Log(&amp;quot;Project file error: failed to get program base&amp;quot;); 
  }                                                               
                                                                  
  PC = Elf.GetEntryPointPC();                                     
                                                                  
  if (PC != 0xFFFFFFFF) {                                         
    Target.SetReg(&amp;quot;PC&amp;quot;, PC);                                    
  } else if (VectorTableAddr != 0xFFFFFFFF) {                     
    PC = Target.ReadU32(VectorTableAddr + 4);                     
    Target.SetReg(&amp;quot;PC&amp;quot;, PC);                                    
  }
} */

/*********************************************************************
*                                                                     
*       BeforeTargetDisconnect                                        
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void BeforeTargetDisconnect (void) {                                
//}                                                                   

/*********************************************************************
*                                                                     
*       AfterTargetDisconnect                                         
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void AfterTargetDisconnect (void) {                                 
//}                                                                   

/*********************************************************************
*                                                                     
*       AfterTargetHalt                                               
*                                                                     
* Function description                                                
*   Event handler routine. Optional.                                  
*                                                                     
**********************************************************************
*/                                                                    
//void AfterTargetHalt (void) {                                       
//}                                                                   
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>