![]() |
Forum Index : Microcontroller and PC projects : Micromite and Micromite Plus Beta 37
![]() ![]() |
|||||
Author | Message | ||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3292 |
That is not good. What has me confused is that the error takes a few seconds to appear - if it was caused by a firmware bug it would appear immediately. An exception can also be caused by hardware factors (power supply, Vcap, etc). The current beta pushes the chip harder with higher levels of optimisation and mode switches and that could be part of the reason why 4.6B works OK. t will setup a test system and see if I can reproduce this but if you can find a few more clues that would be very helpful. Geoff EDIT: Is the address in the error message always the same or does it vary? If it is consistent what is the number? Geoff Graham - http://geoffg.net |
||||
ThierryP Newbie ![]() Joined: 12/04/2012 Location: NetherlandsPosts: 12 |
Geoff In my case the message is always the same as is the address: CPU exception #7 (bus error on load or store) at address 0x9D0289CF
I did have it working OK with recent versions of V4.7beta too (v32?), I just had no copy of their hex files, so V4.6B was the only earlier version I had. With V4.7B37 I had no no issues with I2C, SPI, ILI9341 display and touch working concurrently, the error so far only appeared when I added the serial COM2 port. I'll doublecheck and replace the VCap. Thierry [EDIT] And I'll the circuit from a proper 3.3V DC power source, not from the USB-FT232 as I did until now |
||||
viscomjim Guru ![]() Joined: 08/01/2014 Location: United StatesPosts: 925 |
I get the same error every time. CPU exception #7 (bus error on load or store) at address 0x9D0289CF I tried this... Open "COM2:9600" As #1 B$="" A=0 Do If Loc(#1) Then B$ = Input$(1, #1) Print B$; EndIf A=A+1 PRINT "LOOPING";A Loop This crashes every single time it is run at varying values for A. However, if I simply change it to com1, everything else the same, runs great. No crashes at all. |
||||
Grogster![]() Admin Group ![]() Joined: 31/12/2012 Location: New ZealandPosts: 9610 |
This exact code runs fine on B32, but when reflashed to B37, I also get the same errors with the same code: ![]() It does take at lease two seconds before anything happens - it seems to be running fine for a start. ...odd... ![]() EDIT: Does not happen on B37, if baud-rate slowed to 2400. It runs fine at a slower speed. I will now try faster then 9600... EDIT: Seems to be baud-rate related. This test with 19k2 baud: ![]() COM2 is a software com port, so I guess something is getting upset in there somewhere? That would explain why no problems on com1, as it is a hardware UART. EDIT: 4800 baud: ![]() At 2400 baud, 'Looping' promt goes up over 10,000 no problems. Any speed faster then 2400, and the exception WILL happen, but at shorter and shorter times proportional to the baud-rate. EDIT: Cannot fault at 2400 baud - up over 65,000 loops and no exceptions. ![]() EDIT: Seems fine up til the non-standard 4700 baud rate. As soon as you try 4750, it falls over with the exception, so something related to around 4800 baud causing the MM to have a hissy fit. EDIT: Hissy-fit(exception) - 'Looping 11425' @ 4700 baud. Smoke makes things work. When the smoke gets out, it stops! |
||||
MicroBlocks![]() Guru ![]() Joined: 12/05/2012 Location: ThailandPosts: 2209 |
What happens when you increase the buffer size? Maybe it then takes longer before the error occurs. Microblocks. Build with logic. |
||||
ThierryP Newbie ![]() Joined: 12/04/2012 Location: NetherlandsPosts: 12 |
I repeated MM 28-pin V4.7B37 with COM2 setup with *a larger receive buffer *new low ESR Vcap *a proper 3.3V power source Open "COM2:9600, 1024" As #1
B$="" Do If Loc(#1) Then B$ = Input$(1, #1) Print B$; EndIf Loop Still having the same error after 1-5 seconds: |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10315 |
I can also get the error, but it doesn't make any sense. The code as it is written should never execute the contents of the "if" statement assuming no external input and yet the contents of the "if" statement influence the crash Open "COM2:9600, 1024" As #1 B$="" Do If Loc(#1) Then EndIf Loop crashes after an extended period Thierry's version crashes immediately Open "COM2:9600, 1024" As #1 B$="" Do print loc(#1) If Loc(#1) Then EndIf Loop crashes after a shorter period than example 1. External pullups or pulldowns on com,s2 RX make no difference so it isn't a noise issue Very strange - definitely one for Geoff UPDATE: I think I may have found the problem - I'll let Geoff know |
||||
WhiteWizzard Guru ![]() Joined: 05/04/2013 Location: United KingdomPosts: 2944 |
I hope so - keep us posted please . . . . ![]() |
||||
viscomjim Guru ![]() Joined: 08/01/2014 Location: United StatesPosts: 925 |
Just out of curiosity, and that I'm using com2 for a project, is there any news on this one?? Thanks!!!!! |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3292 |
Yes. Firstly, the bug is confirmed and Peter did find the cause ![]() I am struggling with another couple of issues in B37 so it will be a little time (perhaps a week) before I will have the next beta (with the fix) ready for distribution. Geoff Geoff Graham - http://geoffg.net |
||||
viscomjim Guru ![]() Joined: 08/01/2014 Location: United StatesPosts: 925 |
Thank you SIR!!!!! |
||||
![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |