mbed Bugs and Suggestions

This is the companion page to the Bugs & Suggestions forum. The aim of this page is to provide a useful way to track the status of bugs/suggestions once they have been generally accepted as valid.

To add your vote to get a suggestion implemented or a bug fixed, edit this page and add

<<user YOURUSERNAME>>

to the last column. To add a bug/suggestion, it is a good idea to first post in the Bugs & Suggestions forum, to make sure that a bug for example is a confirmed problem.

Bugs/Suggestions

Suggestionmbed team commentsAdd username to vote
"Published Programs" page does not show .s files (assembly files) linkuser J.P. Armstrong
Compiled library support - linkAccepted, not yet scheduleduser Dan Ros user Michael Wei user Hexley Ball user Aaron Goselin user Hendrik Lipka user Kevin Conley user Andy Kirkham
Compiler build details of AHBSRAM usage - linkuser Daniel Peter user Andy Kirkham
Update libraries to use CMSIS 2.0 - linkAccepted, not yet scheduleduser Dimiter Kuser Michael Joubertuser Tom Kreyche
Add attach for member functions to CAN - linkuser David Smart user Michael Allan
Add standard #ifdef check in new header files linkuser Eli Hughes
Add code folding linkuser Scott O'Brien user Wim van der Vegt user Matías Paragano
Add regions folding and highlighting linkuser Wim van der Vegt user Matías Paragano

Accepted bugs/suggestions

We aim to address these issues in the next release.

Bugmbed team commentsAdd username to voteUser feedback
Show asterisk in folder containing modified file - linkScheduleduser Dan Ros user Hexley Ball
Focus edit window on file open - linkScheduleduser Dan Ros user Hexley Ball user Hendrik Lipkauser Matías Paragano
Global search/replace - linkScheduleduser Steve D user Andrew Harpinuser David Smartuser Matías Paragano
Brace matching - linkScheduleduser Kevin Hawkins user Matías Paragano

Fixed bugs/suggestions

Bugmbed team commentsAdd username to voteUser Feedback
Search/replace recursion - linkTicket c379 fixed, releaseduser Dan Ros user Andy Kirkhamuser Andy Kirkham confirms fix
malloc problem - linkAccepted, Fixed and Released in v27user Hendrik Lipkauser Daniel Peteruser Hendrik Lipka fix doesn't work for all cases
Build number/timestamp - linkAlready supported by armcc, details in linked threaduser Dirk-Willem van Gulik (NXP/mbed) user Ian Molesworth user Daniel Peter user Aaron Goselin
InterruptIn triggers on startup linkAccepted, Fixed and Released in v27user Andy Kirkham user Karl Zweimülleruser Karl Zweimüller confirms fix in v27
Ticker doesn't allow you to attach/detach in own event linkAccepted, Fixed and Released in v28user Andy Kirkhamuser Andy Kirkham confirms fix in v28
Copying files/Save As problem linkFixed in betamode compileruser Graham Bloice
IE context menu is hidden by editor window linkFixeduser Very Compact




12 comments:

31 Mar 2011

Possible bug with Time display

Does mbed sense April Fools' Day?

Bug and suggestions forum is currently unreachable

    ....
    struct tm t;
    t.tm_sec = 00;    // 0-59
    t.tm_min = 58;    // 0-59
    t.tm_hour = 8;   // 0-23
    t.tm_mday = 1;   // 1-31
    t.tm_mon = 4;     // 0-11
    t.tm_year = 2011 - 1900;  // year since 1900

    // convert to timestamp
    time_t seconds = mktime(&t);

    set_time(seconds);  // Set RTC time
   
    time_t cursecs = time(NULL);
    strftime(buffer, 32, "%d/%m/%Y\n", localtime(&cursecs));
    printf("%s", buffer);

shows as "01/05/2011"

31 Mar 2011

Months are counted from 0, just like the comment says, so 4 is May.

01 Apr 2011

Thanks for pointing that out, that's really really dumb. (Not mbeds's fault but the standard is the standard.) It also means that the secs range comment is also wrong because it ranges from (0-60 with 60 = leap second).

I hope everyone had great April Fools' day!

05 Sep 2011

I got this error message everytime i try to open any one of the programs drop down menu from the compiler tab.

/media/uploads/stunner08/mbedissue.jpg Appreciate the help.

05 Sep 2011

hi,

Did you try to disable ie plugins? In theast i had similar problems with a divx plugin that inserted code into every page i opened. Disabling this plugin fixed it.

wvd_vegt

06 Sep 2011

Hi, There's many Plugins and I'm not sure which one to disable.

Regards

06 Sep 2011

Hi

Start with the DivX ones if You have those.

wvd_vegt

27 Jul 2012

Hello, I'm pretty sure I've found a bug with the compiler that is changing a valid "while" loop to a "while(1)" and thus freezing a program.

#include "mbed.h"

Serial pc(USBTX, USBRX);

// A class which contains a timeout
class SomeClassWithTimeOut {
public:
    // Constructor sets the timeout period
    SomeClassWithTimeOut(int tPeriod) : _tPeriod(tPeriod) {
    };
    // Start the timer and wait for the interupt
    void StartTimer(void) {
        int i = 0;
        tFinished = false;
        t.attach(this, &SomeClassWithTimeOut::tTimedOut, _tPeriod);
// ****THE COMPILER APPEARS TO CHANGE THE NEXT LINE TO while(1)****
// ****AS THE LOOP IS NEVER BROKEN......***************************
        while (!tFinished) {
            // Wait for timeout
// ****....UNLESS THE FOLLOWING pc.printf(""); LINE IS INSERTED****
//            pc.printf("");
// ****BIZARRE!****************************************************
            i++;
        }
        pc.printf("%i\n", i);
    };
    // The timeout has finished so set tFinished
    void tTimedOut(void) {
        tFinished = true;
        pc.printf("Timed Out!\n");
    };
    // Boolean to indicate whether a timeout has finished
    bool tFinished;
protected:
    // Timeout period
    int _tPeriod;
    // Timeout
    Timeout t;
};

int main() {
    // New instance of class with timeout period of 1 second
    SomeClassWithTimeOut t1(1);
    // Counter used to count timeouts
    int t1Counter = 0;
    while (1) {
        // Reset flag and start timeout
        t1.StartTimer();
        // Increment timeout counter
        t1Counter++;
        pc.printf("The timer has timed out %i times\n", t1Counter);
    }
}

The program gets stuck in the while loop on line 18. I know that the variable tFinished is set to 1 as the pc.printf("Timed Out\n") message appears on the terminal.

The really strange thing is that if I un-comment the printf command on line 21, the program runs perfectly. It seems like the compiler messes with the while loop unless the printf command is in there.

Any suggestions?

27 Jul 2012

Did you declare tFinished as volatile?

27 Jul 2012

user Tim Barry wrote:

I know that the variable tFinished is set to 1 as the pc.printf("Timed Out\n") message appears on the terminal. The really strange thing is that if I un-comment the printf command on line 21, the program runs perfectly. It seems like the compiler messes with the while loop unless the printf command is in there.

Any suggestions?

All the C compilers would optimize this source code in the same way. When a variable can be modified by an external Thread/ISR you should specifically tell the compiler to not optimize it through the volatile keyword:

volatile bool tFinished;

For more information you can read the wikipedia volatile entry.

HTH, Emilio

Edit: Thank you Andy, I was slow editing my answer... ;-)

27 Jul 2012

Andy and Emilio,

Thanks for your help. It is now working perfectly! I definitely need to brush up on my c++ ;-D

Tim

27 Jul 2012

Emilio, hey, cool man. I just took the "fast solution" with a one liner. I only beat you because you spent more time giving a thorough and usable answer :)