element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum Have a question about Micrium's embedded software? Ask our Expert, Matt Gordon
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 35 replies
  • Subscribers 502 subscribers
  • Views 4519 views
  • Users 0 members are here
  • applications
  • device
  • embedded
  • kernel
  • micrium
Related

Have a question about Micrium's embedded software? Ask our Expert, Matt Gordon

e14 Contributor
e14 Contributor over 15 years ago

This thread has been closed to new questions.

However, we welcome you to Post Your Question about Embedded in the element14 Community Embedded group. You'll find many fellow members and experts who have just the answer you're looking to find! 

 

Thank You, Your Friends at element14 Community

image

 

Matt Gordon

Matt Gordon is a senior applications engineer at Micrium.  He began his career developing device drivers, kernel ports, and example applications for Micrium's customers.  Drawing on this experience, Matt has written multiple articles on embedded software.  He also heads Micrium's training program and regularly teaches classes on real-time kernels and other embedded software components.  Matt holds a bachelor's degree in computer engineering from Georgia Tech, Georgia in the USA.


  • Sign in to reply
  • Cancel
  • e14 Contributor
    e14 Contributor over 14 years ago in reply to e14 Contributor

                                                                                     /* Flag creation code                          */

     

    OSFlagCreate(&AppFlagEx,                                        /* Pointer to OS_FLAG_GRP structure */

                         "Example Flag",                                    /* String name for flags                        */

                          0,                                                        /* Initial flag values                              */

                          &err);                                                   /* Error pointer                                    */

     

    void AppTaskA (void *p_arg)

    {

     

        while (1) {

            OSFlagPend(&AppFlagEx,                                   /* Pointer to OS_FLAG_GRP structure */

                                0x0003,                                          /* Specify bits 0 and 1                         */

                                100,                                               /* Wait for a maximum of 100 ticks       */

                                OS_OPT_PEND_FLAG_SET_ALL,   /* Wait for both flags to be set              */

                                0,                                                   /* No timestamp for this example          */

                                &err);                                              /* Error pointer                                    */

     

            Take actions that must follow occurrence of events;

        }

    }

     

    void AppTaskB (void *p_arg)

    {

     

        while (1) {

            OSFlagPost(&AppFlagEx,                                   /* Pointer to OS_FLAG_GRP structure   */

                               0x0003,                                          /* Specify bits 0 and 1                           */

                               OS_OPT_POST_FLAG_SET,           /* Indicate that bits will be set                */

                               &err);                                              /* Error pointer                                      */

     

            Perform additional work;

        }

    }

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 14 years ago in reply to e14 Contributor

    Hey Matt, thank you so much image

     

    Also, if I want to make a task start from the beginning if I interrupt it in the middle of a task, then do I have an option of using something other than OSTaskDel(). What i mean is suppose my task is printing 1 to 100 and then I interrupt it at 55, now when I want to restart the task but it should start the counting again from 1, insteading of continuing it from 55.

     

    Regards.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 14 years ago

    What happened to the PDF book files?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 13 years ago

    Hi,

     

    1. I am using OSFlagPend(ucos-iii) to block a thread to wait for an event for 180seconds (OS_CFG_TICK_RATE_HZ is 1000u).

    It is working fine i.e when the event is posted my thread is resuming the execution but when it doesn't receive any event within specified time it is getting blocked.

    Normally it should resume execution when timeout happens. Any Ideas?


    2. One more problem is ...delay function OSTimeDlyHMSM is not working, when I used OSTimeDlyHMSM(0,0,30,0,OS_OPT_TIME_HMSM_NON_STRICT ,&oserr); the thread is getting blocked forever.

    Any idea?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 13 years ago in reply to e14 Contributor

    Are you able to determine whether or not tick interrupts are actually occurring?  Both of the problems that you've described could result from the tick interrupt not being initialized properly.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 13 years ago in reply to e14 Contributor

    Hi MattGordon_Micrium,

     

    Thnaks for the reply.

    the tick interrupt was initialized properly but the problem was the clock frequency( currently assigned cpu_clk_freq=32MHz), it is generating two tick interrupts for a second.
    I think this is the reason for my driver thread getting blocked (as I used 30 seconds which is almost equal to 4hours with two interrupts for a second ).
    When I changed it to cpu_clk_freq / /OSCfg_TickRate_Hz(1000Hz), it is generating too many interrupts per second and the driver is behaving abnormally(suspecting CPU overloaded with tick interrupts).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 13 years ago in reply to e14 Contributor

    Hi MattGordon,

     

    i'm new in micrium  and i wish to realize a small driver using spi for a wirless module. I'm working on psoc5 and uCos III. I looking for existing project or at least some usefull example.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 13 years ago

    Hi, I don't know if you are the right one to ask, but if not, please direct me to the correct person.

     

    We have bought a MSP Gang programmer from Texas Instruments and I am having some problems communicationg with it. I sent a question to TI's support but there response was "

    In order to resolve your inquiry, we would kindly advise you to contact one of our official distributors..."

    So thats what I am doing.

     

    Here is the question I sent:

    [Problem:
    My problem is with the MSP Gang programmer. I need to control the programmer from a Labview application using MSP-Gang.dll but I am having problems. Some functions do not work properly and for most function calls Labview returns this error message: "LabVIEW: An exception occurred within the external code called by a Call Library Function Node. The exception might have corrupted the LabVIEW memory. Save any work to a new location and restart LabVIEW." Also - the first time I try to run the dll after starting my PC, Labview crashes. Is the dll not compatible with Labview 2012 and windows 7? /Stephan]

     

    [Steps Needed to Recreate Problem:

    Use MSP-Gang.dll with Labview 2012 and windows 7.

     

    Regards

    Stephan.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 13 years ago in reply to e14 Contributor

    Stephan,

     

    The section for questions about the Micrium Real Time Operating System may not be the best place to ask questions about LabView and TI programmers, but here is a little information that might help.

     

    http://www.farnell.com/datasheets/1681622.pdf

     

    "Together with the MSPGANG.dll are provided two more files that should be used during the compilation process.

    • MSP-GANG.h: This file is the header file for the MSP-GANG.dll, and provides the function prototypes,

    typedefs, #defines, and data structures for the functions of the MSP-GANG.dll. This file is normally

    located in the same directory as the application source file and should be included by the application

    source files. This file is used during compile time.

    • MSP-GANG.lib: This file is the library file for the MSP-GANG.dll and is required to access the DLL

    functions. This file is normally located in the same directory as the application source file and should

    be added to the Linker Object / Library Modules list of the application. This file is used during link time."

     

    "Examples of using the new MSP-Gang.dll are provided and can be found in these locations (if the default

    installation directory was used):

    C:\Program Files\Texas Instruments\MSP-GANG\Examples\C_Applications_MSP_DLL

    and

    C:\Program Files\Texas Instruments\MSP-GANG\Examples\Cpp_Applications_MSP_DLL"

     

    "The Gang430.dll wrapper allows application software prepared for the old MSP430 Gang programmer to

    control the new MSP-GANG programmer via the MSP-GANG.dll. Because the MSP- GANG programmer

    has different functionality and features than the old MSP430 Gang Programmer, not all features provided

    in the old programmer are supported in the same way by the MSP-GANG programmer."

     

    "See the MSP430 Gang Programmer (MSP-GANG430) User's Guide (SLAU101) for list of commands used

    in Gang430.dll."

     

    http://www.ti.com/lit/ug/slau101q/slau101q.pdf

     

    http://www.ti.com/tool/msp-gang430

    MSP-GANG430

    MSP430 In-System Gang Programmer Status: OBSOLETE

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • e14 Contributor
    e14 Contributor over 12 years ago

    Hi matt,

     

    I have been trying to port Micrium TCP/IP stack (version 2.13.01) to STM32 platfrom.

    I am finding it difficult to configure/enable ARP feature in uC-TCP/IP

    -> When Applicaiton tries to send a IP Packet, I don't see uC-TCP/IP Stack sending ARP-request at lower-layer driver, to get MAC Address of destination

     

    Can you please guide me, how to trigger Micrium TCP/IP Stack to send ARP-requests and handle incoming ARP Requests with ARP responses ?

     

    Thanks in advance.

     

    -Regards,

    Ram.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube