Hi All, I have recently upgraded from CodeWarrior 5.0.5 to 5.1.1 and SDK 2.5 to 3.0 and wanted to share some of my experience as well as ask a question of you all. First, I did not create new project files and drag my source files into them because there are close to twenty sub project files in this project. When each was opened in CodeWarrior 5.1.1, I was given the option of converting them for the new version which I did. In order to compile error free I had to go to Edit--->Target Settings--->Language Settings--->C/C++ Language and uncheck "Enable bool support" and "Enable wchar_c Support". In using the debugger I have found a few strange things. Data--->View Memory from the menu did not display a memory window. I tried many times. When I tried the short cut keys (Alt+Shift+M) a memory window was displayed although I could not get the menu to work. After displaying the memory window once with Alt+Shift+M, the menu also works every time. Don't know why, but it works. I know this has been discussed already but I have to comment on the "Swap Endian" feature. First, I don't understand what big or little endian has to do with the way a 16 bit word is handled by a 16 bit processor like those in the 56F80x family. Any time memory is displayed I would expect to see bit 15 as the msb and bit 0 as the lsb just as the dsp does. I tried to enable the "Swap Endian" feature on a couple memory windows yesterday and found it to have no effect - the displayed window did not change. Today it seems to swap bits 15-8 with bits 7-0 in each 16 bit word. I'm not sure what I did to make it work. I do find however that enabling the feature puts the display in sync with what is really in memory or peripheral registers. Again, I'm not sure why this is an option. Now...On to my question: I am having trouble with the Stack Window in the debugger. I have found it not to display the correct labels to track the path to the current Program Counter address. When I set the display window to "View Mixed" to see the actual jsr instructions I see the current PC put on the stack followed by the Status Register and the PC jumps to the jsr address. At this point the label in the stack window which should be the stacked PC address is instead the stacked SR value used as an address. In other words it looks like the debugger is one word off when it pulls the return address off the stack for display. Has anyone experienced this problem? I can't imagine what I could have done to cause this. Any advice would be greatly appreciated. Thanks, Terry Litinas Project Engineer ITW Balance Engineering 1731 Thorncroft Troy, Mi. 48084 Ph: (248)643-2876 Fx: (248)643-2888 |
|
CodeWarrior 5.1 Issues
Started by ●August 27, 2003
Reply by ●August 28, 20032003-08-28
I can only comment on the two issues below. Older projects apparently have those options checked but since there was no actual functionality behind the offending check boxes, it did not matter. I imagine that in the upgrade these were not turned off automatically when a project is upgraded because it either was overlooked or was too much extra work. I'd prefer the lack of checking rather than having to update the checkboxes ever time a project is upgraded. As far as the endian swap business, the IDE code base is shared amongst all the different platforms CodeWarrior supports. Since the desktop versions make up the bulk of the users/sales/demand, the default endian mode is wrong for the DSP56800s. (Yet another manifestation of Wintel marketshare...) Pretty annoying, but once you know it, you automatically do the swap when you open a new memory window. I've never seen any of the non-working menu issues you've seen. --david --- In , "Litinas, Terry" <tlitinas@i...> wrote: > First, I did not create new project files and drag my source files into them > because there are close to twenty sub project files in this project. When > each was opened in CodeWarrior 5.1.1, I was given the option of converting > them for the new version which I did. In order to compile error free I had > to go to > Edit--->Target Settings--->Language Settings--->C/C++ Language and uncheck > "Enable bool support" and "Enable wchar_c Support". > In using the debugger I have found a few strange things. > > Data--->View Memory from the menu did not display a memory window. I tried > many times. When I tried the short cut keys (Alt+Shift+M) a memory window > was displayed although I could not get the menu to work. After displaying > the memory window once with Alt+Shift+M, the menu also works every time. > Don't know why, but it works. > > I know this has been discussed already but I have to comment on the "Swap > Endian" feature. First, I don't understand what big or little endian has to > do with the way a 16 bit word is handled by a 16 bit processor like those in > the 56F80x family. Any time memory is displayed I would expect to see bit 15 > as the msb and bit 0 as the lsb just as the dsp does. I tried to enable the > "Swap Endian" feature on a couple memory windows yesterday and found it to > have no effect - the displayed window did not change. Today it seems to swap > bits 15-8 with bits 7-0 in each 16 bit word. I'm not sure what I did to make > it work. I do find however that enabling the feature puts the display in > sync with what is really in memory or peripheral registers. Again, I'm not > sure why this is an option. |
|
Reply by ●August 28, 20032003-08-28
David/Terry, According to Targeting_DSP56800 Manual it states: The following options are not applicable to the DSP56800 compiler. Disable the options at all times: Force C++ compilation ISO C++ Template Parser Enable C99 Extensions Enable Objective C Legacy for-scoping Enable C++ Exceptions Enable RTTI Enable bool Support Enable wchar_t Support Multi-Byte Aware EC++ Compatibility Mode Pool Strings The stationary on CodeWarrior for DSPv5.0 had this enabled and when you convert it to CodeWarrior for DSPv5.1 it is still enabled but now it gives you a warning that it unsupported which is correct. There are several ways to view memory in the debugger window. In the source window you do a right-click and select 'View Memory'. You can also select the option 'View Memory As' when you right-click on the source window. You can also go to Data --> View Memory. You can also select Alt+Shift+M. All these options work. I have not seen what you are describing but each one of the options that I described above works. - Irene --- In , "David" <beanfranks@y...> wrote: > I can only comment on the two issues below. > > Older projects apparently have those options checked but since there was no actual > functionality behind the offending check boxes, it did not matter. I imagine that in > the upgrade these were not turned off automatically when a project is upgraded > because it either was overlooked or was too much extra work. I'd prefer the lack of > checking rather than having to update the checkboxes ever time a project is > upgraded. > > As far as the endian swap business, the IDE code base is shared amongst all the > different platforms CodeWarrior supports. Since the desktop versions make up the > bulk of the users/sales/demand, the default endian mode is wrong for the > DSP56800s. (Yet another manifestation of Wintel marketshare...) Pretty annoying, but > once you know it, you automatically do the swap when you open a new memory > window. > > I've never seen any of the non-working menu issues you've seen. > > --david > > --- In , "Litinas, Terry" <tlitinas@i...> wrote: > > First, I did not create new project files and drag my source files into them > > because there are close to twenty sub project files in this project. When > > each was opened in CodeWarrior 5.1.1, I was given the option of converting > > them for the new version which I did. In order to compile error free I had > > to go to > > Edit--->Target Settings--->Language Settings--->C/C++ Language and uncheck > > "Enable bool support" and "Enable wchar_c Support". > > > > > > In using the debugger I have found a few strange things. > > > > Data--->View Memory from the menu did not display a memory window. I tried > > many times. When I tried the short cut keys (Alt+Shift+M) a memory window > > was displayed although I could not get the menu to work. After displaying > > the memory window once with Alt+Shift+M, the menu also works every time. > > Don't know why, but it works. > > > > I know this has been discussed already but I have to comment on the "Swap > > Endian" feature. First, I don't understand what big or little endian has to > > do with the way a 16 bit word is handled by a 16 bit processor like those in > > the 56F80x family. Any time memory is displayed I would expect to see bit 15 > > as the msb and bit 0 as the lsb just as the dsp does. I tried to enable the > > "Swap Endian" feature on a couple memory windows yesterday and found it to > > have no effect - the displayed window did not change. Today it seems to swap > > bits 15-8 with bits 7-0 in each 16 bit word. I'm not sure what I did to make > > it work. I do find however that enabling the feature puts the display in > > sync with what is really in memory or peripheral registers. Again, I'm not > > sure why this is an option. |
Reply by ●August 28, 20032003-08-28
David/Terry, According to Targeting_DSP56800 Manual it states: The following options are not applicable to the DSP56800 compiler. Disable the options at all times: Force C++ compilation ISO C++ Template Parser Enable C99 Extensions Enable Objective C Legacy for-scoping Enable C++ Exceptions Enable RTTI Enable bool Support Enable wchar_t Support Multi-Byte Aware EC++ Compatibility Mode Pool Strings The stationary on CodeWarrior for DSPv5.0 had this enabled and when you convert it to CodeWarrior for DSPv5.1 it is still enabled but now it gives you a warning that it unsupported which is correct. There are several ways to view memory in the debugger window. In the source window you do a right-click and select 'View Memory'. You can also select the option 'View Memory As' when you right-click on the source window. You can also go to Data --> View Memory. You can also select Alt+Shift+M. All these options work. I have not seen what you are describing but each one of the options that I described above works. - Irene --- In , "David" <beanfranks@y...> wrote: > I can only comment on the two issues below. > > Older projects apparently have those options checked but since there was no actual > functionality behind the offending check boxes, it did not matter. I imagine that in > the upgrade these were not turned off automatically when a project is upgraded > because it either was overlooked or was too much extra work. I'd prefer the lack of > checking rather than having to update the checkboxes ever time a project is > upgraded. > > As far as the endian swap business, the IDE code base is shared amongst all the > different platforms CodeWarrior supports. Since the desktop versions make up the > bulk of the users/sales/demand, the default endian mode is wrong for the > DSP56800s. (Yet another manifestation of Wintel marketshare...) Pretty annoying, but > once you know it, you automatically do the swap when you open a new memory > window. > > I've never seen any of the non-working menu issues you've seen. > > --david > > --- In , "Litinas, Terry" <tlitinas@i...> wrote: > > First, I did not create new project files and drag my source files into them > > because there are close to twenty sub project files in this project. When > > each was opened in CodeWarrior 5.1.1, I was given the option of converting > > them for the new version which I did. In order to compile error free I had > > to go to > > Edit--->Target Settings--->Language Settings--->C/C++ Language and uncheck > > "Enable bool support" and "Enable wchar_c Support". > > > > > > In using the debugger I have found a few strange things. > > > > Data--->View Memory from the menu did not display a memory window. I tried > > many times. When I tried the short cut keys (Alt+Shift+M) a memory window > > was displayed although I could not get the menu to work. After displaying > > the memory window once with Alt+Shift+M, the menu also works every time. > > Don't know why, but it works. > > > > I know this has been discussed already but I have to comment on the "Swap > > Endian" feature. First, I don't understand what big or little endian has to > > do with the way a 16 bit word is handled by a 16 bit processor like those in > > the 56F80x family. Any time memory is displayed I would expect to see bit 15 > > as the msb and bit 0 as the lsb just as the dsp does. I tried to enable the > > "Swap Endian" feature on a couple memory windows yesterday and found it to > > have no effect - the displayed window did not change. Today it seems to swap > > bits 15-8 with bits 7-0 in each 16 bit word. I'm not sure what I did to make > > it work. I do find however that enabling the feature puts the display in > > sync with what is really in memory or peripheral registers. Again, I'm not > > sure why this is an option. |