• AVR Freaks

AnsweredHot!(944) data conflict error

Author
Chaabane
Super Member
  • Total Posts : 196
  • Reward points : 0
  • Joined: 2009/10/10 11:45:01
  • Location: 0
  • Status: offline
2015/03/24 09:35:26 (permalink)
0

(944) data conflict error

Hello,
 
I'm trying to build a bootloader code and an application code together but in release mode, I get this error 
(944) data conflict at address 1FC02FFAh between bootloader.hex and app.hex
 
I found this solution in microchip wiki 
https://microchip.wikidot.com/faq:79
 
but i can't find ._debug_exception  in my linker ?
 
I'm using pic pic32MX795F512L and XC 32 v1.33
 
Any ideas ?
#1
cgiordan
Super Member
  • Total Posts : 1364
  • Reward points : 0
  • Status: offline
Re: (944) data conflict error 2015/03/24 09:45:03 (permalink) ☼ Best Answerby Chaabane 2015/03/25 05:05:22
5 (1)
The issue here is your configuration words between both projects are not the same.  They are conflicting.  As well, you need to remove the debugging sections in one of your projects linkers because when you "clooge" them together, both applications are built and there is syntax directing the compiler to make instruction data - i.e. via HEX file.  How will the compiler know what to keep, get rid of, etc.  You have to sort this out. 
#2
maxruben
Super Member
  • Total Posts : 3366
  • Reward points : 0
  • Joined: 2011/02/22 03:35:11
  • Location: Sweden
  • Status: offline
Re: (944) data conflict error 2015/03/24 14:29:48 (permalink)
3 (1)
cgiordan
As well, you need to remove the debugging sections in one of your projects linkers because when you "clooge" them together, both applications are built and there is syntax directing the compiler to make instruction data - i.e. via HEX file.  How will the compiler know what to keep, get rid of, etc.  You have to sort this out. 



I have never needed to remove the debugging sections with XC32. As long as overlapping code is the same there will not be any error.
 
/Ruben
#3
Chaabane
Super Member
  • Total Posts : 196
  • Reward points : 0
  • Joined: 2009/10/10 11:45:01
  • Location: 0
  • Status: offline
Re: (944) data conflict error 2015/03/25 02:17:45 (permalink)
0
Yeah, it was my fuses configuration
 
thx
#4
cgiordan
Super Member
  • Total Posts : 1364
  • Reward points : 0
  • Status: offline
Re: (944) data conflict error 2015/03/25 10:54:43 (permalink)
0
maxruben
cgiordan
As well, you need to remove the debugging sections in one of your projects linkers because when you "clooge" them together, both applications are built and there is syntax directing the compiler to make instruction data - i.e. via HEX file.  How will the compiler know what to keep, get rid of, etc.  You have to sort this out. 



I have never needed to remove the debugging sections with XC32. As long as overlapping code is the same there will not be any error.
 
/Ruben


You're right.  I had relocated my exception tables (dbg exception caused an issue somehow) between the 2 projects, and I think something went wrong there...  Overall, I worked around it via removing the debugging sections in one of the projects.  It was a while back, but I recall this problem pretty well when using loadables. 
#5
Kirk Clendinning
New Member
  • Total Posts : 6
  • Reward points : 0
  • Joined: 2013/08/29 04:03:32
  • Location: 0
  • Status: offline
Re: (944) data conflict error 2015/03/31 10:58:18 (permalink) ☄ Helpfulby jo1234 2017/07/06 01:20:42
5 (2)
This must be a very common error now in the new compilers. I've seen quite a few discussions. My problem is similar. I get a "(944) data conflict at address 1FC00018h..." error compiling for a production build, combining a boot loader and application when putting the boot loader project into the application project's Loadables folder. It is definitely something in the HexMate. However, the SECTIONS solution given earlier for the debug exception is not working for me. It would be nice to get a definitive solution for this issue with a detailed discussion of how to fix it, so that various address conflicts could be handled by developers.
#6
maxruben
Super Member
  • Total Posts : 3366
  • Reward points : 0
  • Joined: 2011/02/22 03:35:11
  • Location: Sweden
  • Status: offline
Re: (944) data conflict error 2015/03/31 12:15:24 (permalink)
0
That address is in the startup code right after the code run at reset. I think it is for handling NMI (jumping to the nmi vector in your program).
 
The bootloader and the application should have their own separate startup code.
 
/Ruben
#7
Kirk Clendinning
New Member
  • Total Posts : 6
  • Reward points : 0
  • Joined: 2013/08/29 04:03:32
  • Location: 0
  • Status: offline
Re: (944) data conflict error 2015/03/31 14:28:09 (permalink)
0
That definitely helped... Thank you. Although once the startup vector was changed, there was another one, 0x1FC01220, in conflict. It's odd that AN1388 mentions nothing about this problem when adding a boot loader as a loadable.
#8
maxruben
Super Member
  • Total Posts : 3366
  • Reward points : 0
  • Joined: 2011/02/22 03:35:11
  • Location: Sweden
  • Status: offline
Re: (944) data conflict error 2015/03/31 23:38:59 (permalink)
3 (1)
heliospectra
That definitely helped... Thank you. Although once the startup vector was changed, there was another one, 0x1FC01220, in conflict. It's odd that AN1388 mentions nothing about this problem when adding a boot loader as a loadable.

The startup code for the application is allocated with the kseg1_boot_mem memory region in the linkerscript for the application.
 
0x1FC01220 is in the interrupt vector table (exception_mem region) for a normal app or a bootloader. I think that there is something wrong with your linkerscript for the application regarding kseg1_boot_mem and exception_mem. The application must have its own startup code and vector table. If you are not using interrupts in the bootloader and want to use interrupt vectors starting at 0x1FC01000 for the application, you need to exclude the vectors for the bootloader completely in the linkerscript for the bootloader since otherwise they are defined with a default vector and there will be a conflict. I have never done this though so I am not quite sure if there also needs to be something else done.
 
/Ruben
#9
Kirk Clendinning
New Member
  • Total Posts : 6
  • Reward points : 0
  • Joined: 2013/08/29 04:03:32
  • Location: 0
  • Status: offline
Re: (944) data conflict error 2015/04/23 12:53:57 (permalink) ☄ Helpfulby Chaabane 2015/04/27 05:47:36
0
Here's an update.  Apparently something had gotten out of sync with MPLab X and the linker scripts. Although they were in the project, they were not being used. I removed all references to the scripts from both projects, the main and the (loadable) boot loader. I got a new single script based on the p32MX795F512L.ld file, put a copy in both projects, the boot loader and the main application and made the necessary modifications to accommodate our memory model. I added the section discard lines mentioned in other posts to avoid conflicts caused by the debugger. I added the two scripts by right clicking the Linker Files folder in the Project tab and choosing "Use Existing Item...". This added the linker scripts correctly. Finally, I did not check the "Do not link startup code" check box in the Project Properties dialog -> XC32-ld category, in both projects due to legacy concerns with executable code placement. Although it was a bit strange to run the start-up code twice, this worked. 
 
Perhaps when the project was imported from MPLab 8, there were problems with the way the linker scripts were referenced. 
 
Thanks for the help Ruben.
post edited by Kirk Clendinning - 2015/04/23 13:00:30
#10
ar.srivastava
New Member
  • Total Posts : 3
  • Reward points : 0
  • Joined: 2019/06/04 10:17:48
  • Location: 0
  • Status: offline
Re: (944) data conflict error 2019/06/19 06:44:55 (permalink)
0
I am trying to generate CRC with the help of hexmate and store at any location.
I am getting following data conflict error for every address I provide to store the CRC. I checked the program memory of the bootloader and the address FF2 is not in use.
 
"User defined post-build step: [hexmate.exe "dist\default\production\Bootloader.production.hex" -CK=0x200-0xFFC@0xFF2+0x46AF6449w-4g5p04C11DB7�ADDRESSING=2 -Ocrcmerged.hex]"
(944) data conflict at address FF2h between dist\default\production\Bootloader.production.hex and Reserved for checksum
#11
Jump to:
© 2019 APG vNext Commercial Version 4.5