Content originally posted in LPCWare by GTA on Sun Aug 11 19:02:48 MST 2013
Hello again,
after some more looking at this, now incl. analysis of the actual data output on the USB buses (which did not make sense all of the time), another option came to mind:
4. The memory maps used for the M0 and M4 builds could lead to that the linker put data into the same memory regions for both the M0 and M4, leading to funky stuff during execution.
I have used the wiki suggested LPC43x7-M0_BankB.xml for the M0, but that still contains RamAHB32 etc, just as the default LPC4357 memory map does (which I used for the M4 - the wiki did not say anything in particular regarding not using the default here). So, theoretically 4. could be a problem.
I edited the memory map settings for both the M0 and M4 not to list RamAHB32 etc, but just the necessary (M4: flash bank A and B plus RamLoc32; M0: flash bank B plus RamLoc40).
This seems to have done the trick. Now both the M0 and M4 enumerate OK in the tests I have done.
USB1 outputs some odd data though, regardless of if it is driven by the M0 or M4 - I will take a look at that (probably the LPCUSBlib code for USB1 which is not all OK).
Re. the multicore memory maps, it could be good if Code Red clarified this a bit more in the wiki to avoid these types of issues for users starting up their multicore projs.
BR,