This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hi everyone, I'm back :-( I sent the following post to a couple of email groups related to the 68332 chip I'm using (e.g., 68332ABB and robominds). I wanted to also send it here because I think the ultimate problem has to do with the cross-compiler I built and because I'm hoping the collective wisdom and experience inherent in this group will give me some insight. Please note the curious bug-squashing effect of adding a 'printf' to the program! Thanks in advance for any help you can provide. Mark ------------------------- post ------------------------- First, thanks James for the response - I appreciate it. I have learned a few more things since my last post. I was busy rebuilding the lcd functionality and created a function called lcd_putchar that just sends one character to the LCD, as in: lcd_putchar('a'); This worked fine. Then I build a lcd_print function which takes a string and, of course, calls lcd_putchar. Here is an example invocation: lcd_print("some string"); Once I added this to my program, it bombed just like when I tried to use the lcd routines that came with the MRM board. Here is the output when it bombs: Exception: Address Error Format/Vector=C00C SSW=00D6 Fault Addr.=00090EB7 Data=00007FEC Cur. PC=00090120 Cnt. Reg.=0001 PC =00090126 SR =2704=TR:OFF_S_7_..Z.. VBR =00000000 SFC =5=SD DFC =5=SD USP =0000FC00 SSP* =00007FD4 D0 =00000000 D1 =01D8FFFF D2 =00000000 D3 =00000000 D4 =00000000 D5 =00000000 D6 =00000000 D7 =00000000 A0 =00003166 A1 =0000315E A2 =00003162 A3 =00000000 A4 =00000000 A5 =00000000 A6 =00007FF8 A7 =00007FD4 00090126 48780000 PEA.L ($0).W I had an insight at this point - the change I made to the program was to reference a string like this: "some string". Maybe there is some problem with that. To test that, I did the following four things: First, I built the string up in the following fashion: someString[0] = 's'; someString[1] = 'o'; someString[2] = 'm'; ...and so on and ended with a NULL - '\0'. When I called the routine with: lcd_print(someString); It worked. Second, I tried using a strcpy to set someString, as in: strcpy(someString, "some string"); and then called: lcd_print(someString); and it bombed in the same way as above. Third, I tried putting a printf statement in the program. When I did, the program worked! Finally, I took the lcdtest.c file (without a printf) and compiled it under xgcc using a windows emulator on my Mac and downloaded it to the board. That *worked*, too. So, my conclusion is that there is something wrong with the way my cross-compiler is putting stuff together which is causing the crashes when I try to use strings unless I also link in code associated with printf. I don't suppose anyone has come across anything like this before or can look at the following output and help me determine what I can do to rectify my cross-compiler? Exception: Address Error Format/Vector=C00C SSW=00D6 Fault Addr.=00090EB7 Data=00007FEC Cur. PC=00090120 Cnt. Reg.=0001 PC =00090126 SR =2704=TR:OFF_S_7_..Z.. VBR =00000000 SFC =5=SD DFC =5=SD USP =0000FC00 SSP* =00007FD4 D0 =00000000 D1 =01D8FFFF D2 =00000000 D3 =00000000 D4 =00000000 D5 =00000000 D6 =00000000 D7 =00000000 A0 =00003166 A1 =0000315E A2 =00003162 A3 =00000000 A4 =00000000 A5 =00000000 A6 =00007FF8 A7 =00007FD4 00090126 48780000 PEA.L ($0).W ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |