This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TM4C123GE6PM: "Project0" doesn't even work...

Part Number: TM4C123GE6PM
Other Parts Discussed in Thread: TM4C123GH6PGE, TM4C123GH6PM, EK-TM4C123GXL, CC2650, EK-TM4C129EXL, ENERGIA, SYSBIOS, EK-TM4C1294XL, TMS320F28027

Tool/software: Code Composer Studio

Yet ANOTHER sample project that is supposed to help you lean, but doesn't work.

Steps to reproduce -  Just follow this:

processors.wiki.ti.com/.../Tiva_TM4C123G_LaunchPad_Blink_the_RGB

Then use this "quick start guide"

www.ti.com/.../spmu352.pdf

I plugged in my new TM4C123G right out of the box. I installed all the drivers, and they appear in the device manager. I installed the TIVA-C packages, and imported the projects.

The light was changing colors with the "factory" load of firmware.  I loaded the Project0. I built it.  I pressed debug.  It downloaded the new firmware.  And did nothing... Sat there no running.

I pressed "Break"  ...  The code is looping on (line 81 in Project0.c ):

while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOG))
{
}

Then I look closely at the project properties.  The device says it's TM4C123GH6PGE.   

I have NO idea why it's looping, I can speculate that the port address, RAM, something...  is different.  The little brochure that came with the launchboard says TM4C123GH6PMI.  So I change it.

Now, it won't build.  I get errors:  FLASH memory range has already been specified tm4c123gh6pm.cmd  because the properties page decided to throw a bunch of new files in there which have conflicting symbols.

I try to put it back by changing the properties and deleting the files it created.  Now it just says the program is not compatible with any of the CPUs in my target configuration.  REALLY??  What is my "target configuration??  Because none of the files I'm digging through seem to give me any hint as to what it thinks it is.  How did it think it knew what the "program" is generated for?  And what is it supposed to match to??

By the way, I've already completely deleted the project and re-imported it several times.  Same results.

I am on CCS 6.2.  I installed C:\ti\TivaWare_C_Series-2.1.4.178

Dealing with these perpetual failures and lack of accurate documentation, and lack or support is really getting old.  Especially since I've been fighting with it since December.

  • Hi Chris,
    I'm sorry you are facing problem. I just tried the project0 with the EK-TM4C123GXL LaunchPad board and I don't see a problem.

    Can you please tell me if you import the project from c:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c123gxl\project0 into CCS and it won't compile and run?
  • Chris,
    Take another breath... after some time, these annoyances go away, simply because we learn to deal with them.
    I'm not going to dig datasheets now, but it seems like you are trying to run a project created for a different part... code would get stuck at the line you mentioned IF such MCU has no GPIO G port - can that be the case?
    After some time, you will laugh and quickly go around problems like these - only to find new problems to which you don't yet have a clue! Hope the folks here at the forum can give you a hand (I would not say "lack of support" is a fact, honestly - not on this forum, at least).
    Developer's life...
    Cheers
    Bruno
  • Oh, look. There are 8 other boards with the designation TM4C123G ... further down.
    My box and brochure says, in large type, TM4C123G. Top of the directory of "project to import" is what I grabbed.

    Considering the long history (well, three months) of incorrect, outdated, deprecated or outright missing information, I have been trained by these experiences to expect things to NOT match what the tutorials indicate.

    In smaller type the box and brochure say that it is part number EK-TM4C123GXL.

    The sample project I pulled in was under a directory called "boards" Not called "Part Numbers". That would have been nice thing to help clear it up.

    Yes, that project works now. Now I can move on to the next step. Thanks.
  • Hi Chris,
    Glad your problem is solved.
  • Feel your pain - KNOW that you are NOT alone!

    Improper emphasis - upon the GREAT "Attention to Detail" required - is a grave short-fall of vendor's project methodology. Those who (usually) compose & write the manuals/guides - are (far too often) "too familiar w/the material" thus they "assume" that you & I "know" - when so often we do not! (at least not yet)

    I can predict that (shortly) you'll be tempted to, "Create your own project." I suggest that you resist that temptation with all of your power. Instead - choose a "known good, vendor project" and then gradually & systematically - "bend that project to your will." This succeeds as the "known good" project manages all of the IDE "gotchas" - which (severely) over-challenge we mortals.

    That "greater attention to detail" likely will yield other benefits - as well. And while not easy - elevated "attitude" makes one more pleasant to be/work around...
  • Bruno, I am constantly taking a breath, and several steps back. Along with several glasses of wine every evening.

    As you see from my other reply, this was the wrong board. Not that anything was clearly explained in the tutorials I've been digging through.

    But I didn't explain why CCS creates and throws files into my project when I changed the device. Or how CCS knew the device that the code was for didn't match the device in the configuration (doesn't the configuration control what the code is for, not the other way around??).

    I don't recall any of these things being discussed in Eric Wilbur's videos. But they are old.

    One day GEL files are a thing of the past, next day some other tutorial it telling you that you need them...

    Having been writing code on the MicroChip MPLab since version 3... been using Microsoft Visual C since version 2.0, and before that, Borland Turbo products, I have never encountered such an environment of constant flux, invalid, missing, or outdated material.

    You can laugh as someone who maybe has been immersed in it for years and has experienced it's growth, but for a newbie it's amazing anyone can enter this realm.

    As for forum help, sometimes I get it, sometimes not. I still can't get an answer on why all the information is wrong trying to get my Piccolo device to hold it's memory. I could download a test binary and it worked. Power cycle it, and it's gone. The docs were old, the examples inaccurate, or inapplicable for current versions of BIOS, CCS, Starterware, etc...

    Nor how a sample program for the BBB even works... it's got functions that are never called or registered as callbacks, but apparently are executing somehow (if you can read it... it's almost got more #ifdef 's then it has actual code) . And the documentation web page... completely inaccurate.

    I know entering a new environment has challenges. I've done it many times. But after three months I would expect to have overcome many of these things.

    -Christopher "Scott" Weber
  • cb1_mobile:

    LOL! So true, on every aspect.

    I've already "Created my own project"... with very limited success. Which is why I took to just importing known working projects. And even then, I have inadvertently taken the wrong path. While some failures are self induced, I still believe some are the material.

    And not limited to those documentation deities, I have stumbled across a people on forums who also are "too familiar" and make assumptions about what we should know. It's a condition common to all communities.

    I have now taken to Valvano's book. And while for me, there are many pages wasted covering ohms law, boolean math, digital logic, registers, and ALU's, I am more forgiving of wasting the paper and ink assuming I didn't know something, rather than omitting it on the assumption I did.

    I hear you on the elevated attitude. Thanks.
  • Thank you - as well.    And you are correct - those w/"over knowledge" are highly challenged when attempting to, "distill the essence" to we masses - across (even) widely varying fields.

    I'm with you in, "sweating the details" - eating (rather than wasting) paper/ink - it appears that "omission" is a graver sin than "commission."   (i.e. better to have "forgotten/misplaced" than to have "over-looked.")

    As to attitude - you're smart enough to have identified (some/certain) aspects of this MCU as desirable.    Use those "strengths" to guide - and propel you - thru the "fog of battle" - when all else fails.    (somewhere - we hope - the tunnel ends - and there is Light!)    (Maybe!...)

  • Not a great deal of depth I can add here...

    I would offer, though, that observations made here - which I'd characterize broadly as being about improving the new user experience - are entirely spot on with respect to this user's first few weeks in the TI ecosystem. I've found the experts here to be very supportive - and helpful. Thanks, all, for this! But we've really spent a lot of time on stuff which shouldn't even present errors.

    • Out-of-Box code Environment setup should be breezy, and explicitly laid out.

    • Layout and environment for specific project examples should be explicit.

    • If certain things don't work on one platform or another, this should be clearly elucidated - up front. 

    TI is now competing in a new world - whether they're fully on board with acknowledging it or not. And, with the great quality stuff they're making, they should be moving aggressively to adapt to that market/Brave New World. Much of that response is nothing like traditional EngineerThink...

    Their goal should be to attract guys - dare I say it? - like me. Someone who's not the traditional EE, but who may bring some other things to the table...

  • Well said.     As a sailor - my 37 footer can not, "come about" as quickly as smaller craft.      Same follows for this "giant" - far too much is "assumed" or judged as, "too effort laden/expensive" to "properly" fix (or even address)."

    You may note that the "originating firm" (LMI, developer of this MCU family) had "first-timers'" attempt, "To open the box & become operational - w/in a short period of time."      And mostly - that succeeded.

    It must be said - many more parts (now) lurk - and they're more complex - and the desire for "assured new user success" (appears) to have slipped.     And would be harder to achieve...

    Many such semi vendors "calibrate their support" to "volume of client's purchase."      I can assure you - firms w/proven purchasing power - suffer no such "trial/tribulations" - as are (daily) portrayed here...

    The "goal" you note (attract guys - like you) requires additional: time, effort, fund investment - does it not?      Such may explain why that "goal" (may) be resisted - even held - in (some) dispute...     As past tech mgr. @ a similar, semi "giant" - this vendor is NOT alone in their, "Support of new users..."

  • Lou, you are correct and I sincerely hope such claims make their way up the food chain.

    Unfortunately, every time they try to create a clarifying new document about layout & environment, things apparently conflict with older instructions and one never knows where to look.

    Just a new anecdote, of quite a "catchy" issue last week: We had imported/adapted/compiled a CC2650 Bluetooth LE UART bridge project... MUCH BETTER than the old Bluetopia stack, but still not without challenges. Well, two completely separate projects and workspaces, we needed to change the UART speed of one of them. Would one guess that such parameter (painfully located with Agent Ransack) was in a referenced external file, instead of something copied into the project!? Well, a couple of days later when compiling project B again, it not longer worked because the UART speed (of the OTHER workspace) had been changed!!! As I say, we'll all laugh of these things someday in the future...

    Or maybe you're right, and "guys like the non-traditional EE" (moi aussi) are not the cup of tea here!!!

    Bruno
  • Your anecdote (antidote - according to one here) proves distressing - of course you are correct.
    Should it not be noted that (moi) holds the (bit loose) forum patent rights for the (selective use) of high school Français ("moi aussi").

    My better noted legal work appears @ forum base/bottom (boiler-plate) , "Providers of Content" - which (somewhat) protects ALL Here - not just vendor staff (nor moi, alone)...

  • Pardon, mon ami! My French parenthesis was clearly a praise to your style!

    Can I tardily request the rights for a brief non-commercial usage of such patented mode d'emploi?

    To avoid copyright infringement, next time I'll use 我也是. :)

    再见!
  • C'est vrais?

    Sorry, couldn't resist! I'm getting a two-fer here, as I'm both a lifelong sailor and a francophone. ( So, rights to all French are taken - on just this thread, or all, or... ?! )

    Even worse(!), I'm fully committed to making this TI stuff work. We're here because we're sold on the features on these parts; we made the decision to jump from lesser chips...

    And I hear what you're both saying, essentially - about how hard it is. Believe me, I'm closer to this than you might think. I feel their pain. We're intimate with the issues of 'How do we support our latest-and-greatest-(typically)-cutting-edge-product-which-nobody-understands?' in other contexts.

    But this TM4C Family stuff might deserve even more special attention. With it, they should be ( shall be? ) competing with ( the other ) Biggest Players in the space. I should be able to hand an EK-TM4C129 to an engineering staffer and say: "Hey, go build xyz on this. It works; I've tried it. Even your idiot boss was able to compile the code!"

  • "C'est vrais"...et "sailor"... et "francophone"... Be still (very still) my heart...

    In celebration of this special occasion - and to extend "not beyond 30 days from today - and restricted to "just here"" - such limited rights to Le Français hereby granted. (some amusement is required as posters (continue) to report, "Does NOT Work!" as if that's OUR fault...)

    Might it be noted that (even) an "idiot boss" (that description, imported - not my own) who makes the proven time/effort to understand - to ease - and to (even) enhance - the efforts of his staff - deserves great applause.    (but only after I secure the patent for "two hands coming together in a (properly) rhythmic fashion - in a gesture noted as approval."

    If you "enable conversations" - we may be able to assist in more detail. (such detail appeared - and was forgotten - when you first "signed up" for this forum. There is a check box which enables "private speak.")

  • LouEEEE! said:
    • Out-of-Box code Environment setup should be breezy, and explicitly laid out.

    Having just had to dig into CCS, for a different processor family, I find myself dismayed at the complexity introduced into that environment. IMO unnecessary and unhelpful complexity.

    I am glad I used a simpler, more robust development environment for ARM development and strengthen in my conviction that IDE are more harm than good.

    Robert

    Too bad Borland killed both Codewright and Brief

  • Let the record show that (both) posters Robert et cb1 employ the same (far superior - many have judged) IDE.

    A poor tool - no matter its (low cost) - extracts its PRICE DAILY - (like withholding tax - or a frog - being slowly pot boiled - until too late!)

    Somewhere it was said, "Proper Tool for the Job is ALWAYS the best TOOL!"      And seldom - is such tool, "free!"

  • cb1_mobile said:
    Let the record show that (both) posters Robert et cb1 employ the same (far superior - many have judged) IDE.

    We do use the same compiler. I don't use the accompanying IDE. No judgement one way or other the other on it, I needed to get an environment up and running quickly when I started  here and it was faster  not beating my head in trying to figure out yet another IDE. So I dispensed with the IDE and have seen no compelling reason to switch to one.

    cb1_mobile said:
    Somewhere it was said, "Proper Tool for the Job is ALWAYS the best TOOL!"      And seldom - is such tool, "free!"

    Indeed and even when immediate resources prevent use of the best tools, better tools may still be affordable. Here, as elsewhere, combining good tools may be superior to a vendor locked do it all.

    The downside is the person doing this selection has to have development experience (more than just working inside a PC IDE).

    Robert

  • Well said friend Robert - well said.

    Again - do note - that FREE (most always "vendor locked") tools prove FAR from the best tools - and the "cost of such" registers DAILY - until the "free/lesser tool" overtakes the cost of the, "proper (for fee) tool."     (overtakes via the "daily" inefficiency, limited capability, and reduced robustness of "free" - when compared against the: far more mature, higher volume, feature packed, "pro" development systems!) 

    Might "free" be ONLY in the eye or a (very) rushed - and unaware - beholder?       Can "Enslaving oneself - to "one and only one vendor" - forever - make ANY sense?"     And - when the time comes to "explore another's device (due to a multitude of clear/compelling reasons) what then?      The PRO IDE accepts devices from multiple sources - thus eliminates (another) painful, "Learning Curve" - that in itself is a (most) powerful "persuader!"

  • Wow. OK. It turns out this dark, scary corner of the TI E2E Community is exactly where I should be hangin' out...

    Here's the thing: I'm only making all this investment in the Eclipse-based IDE because it seemed to be what all the Cool Kids in school are doing...

    Seriously, it seemed to be the best-supported fast path in to this platform.

    In fact, what is this mythical unicorn-compiler/toolset/toolchain of which you speak?

    Bear in mind: One comes from an environment in which he's fully comfortable with python-based build systems, Jenkins, makefiles and 30-line ./configure steps. All good!

    I've been spending a lot of time wrestling with the intricacies of an IDE I am not at all committed to, barreling forward à la débandade...

    ( Yup, that was for your benefit, cb1_mobile. Ha! )

  • Dark - scary - from (Robert's) Canadian prairie - and cb1's (Chicago) stockyard/railroad high-rise, lake-view (LSD) hub?       Really?

    Lou - might the fact that cb1 firm delights in operating from a back-room - behind (yet another) back-room - register as scary?      And - our past, defensive purchase of a sufficient number of incandescent, 100W bulbs - may "escape" your representation as "dark." (it is only when the "stack" of (staff's) unwashed dishes - piles high enough to "block" the soothing glow of the (single) overhead incandescent - that "darkness" invades....)

    A "beyond bandaid IDE" - IMO - would arrive from "Keil or IAR."      (IAR favored by Robert et moi) Indeed there IS cost - yet both vendors offer "Code Size Limited - familiarity building versions" - which are (dare I mention) FREE!      (these downloadable from the vendor)       There is also the option for "Full fledged version - which "blows-up" (apres) 30 days!      Don't download that one - you WILL have a learning curve - and best to practice w/out the burden of "time pressure."       (as every boss surely knows...)

    May (some) doubt be registered as to the "koolness" of  "locking oneself into a sub-optimal system - which services (only) one brand?"      (might those kidz be, "Not too bright?)       I'd rather be "un-kool" - perhaps (even) "on fire" - via the use of a system which accepts every ARM MCU under the sun - which has long pre-existed (lesser) versions - and committed to a far larger (& on-going) development staff - which enables far deeper attention to key/critical operational detail, capability, performance & robustness.       (I (remain) unpaid & (but) marginally thanked for such endorsement - alas - NOT thru intent!)

  • Cb1 has given you several possibilities, let me suggest some others to check

    Rowley. GCC compiler with some additional libraries and an editor/ IDE. I've not used it has decent reviews from respectable quarters.

    This and cb1's suggestions are relatively quick starts.

    An alternative that requires more upfront time investment is to use GCC. Either find a prebuilt distribution (probably easier on Linux) or build your own.

    I've used both IAR and GCC (a while ago now so I've not got any pointers to sources) to good effect.

    Since you seem to have a solid background don't get too attached to using the IDE that comes with the compiler. There's a lot of value to using an editor you are practiced and familiar with. A good editor is the master craftsman's primary tool and is independent of the compiler/ chip du jour. Similarly a build system independent of the compiler has value. I usually end up with one editor, make and multiple compilers.

    My current system consists of the IAR compiler, an acceptable editor, make (GNU), pc-lint, google test and other utilities.

    Robert
  • Gentlemen,

    It has been entertaining to watch the banter, however I wish to pull this back into more real-world difficulties.  I post to this thread, because it seems people are actually monitoring and responding to it.  Although I have not made any specific measurements at this time, it feels like less than 40% of my requests receive any useful reply.

    I submit another "out of the box" project.  This one, however, does work, but is virtually impossible to determine how it works.  It is nested with at least a dozen #if defined(...) macros making it a nightmare (if not impossible) to unravel.

    Even the "main()" is protected by a #ifndef BARE_METAL macro, which if, defined, actually uses a different function name.  Then "AppGpioCallbackFxn()" does not appear to be registered anywhere, and yet it gets called like clockwork, as if by magic.  (And like clockwork is the intended behavior, since it's a time function - LOL ).

    It does generously provide a function called "Board_init()"   with no source.  And no description.  How nice to give the user undocumented functions for them to reverse engineer.

    I have attached the project, which is DIRECTLY out of the collection of samples for the BBB board.  Why, if it is a project dedicated to the single MCU and board, it requires so many different #ifdef macros, is way beyond me.

    Is there is more useful training material?

    GPIO_LedBlink_bbbAM335x_armTestProject.zip

  • I feel your pain, and tried to 'like' your message twice. No Joy... The forum seems intransigent in its insistence that I only get one bite at that apple...

    I am impressed that one of my Out-of-Box demos is executing BIOS_start();  -- of which I stand in awe, but have no mechanism to even begin to understand.

    My Everest? I'd like to simply speak SPI from an EK-TM4C129EXL to an MFRC522, in order to learn this stuff.

    I'll repeat that I'm most appreciative of the guys here who've offered help. cb1 and Robert Adsett - Tks for your suggestions. At least for the moment I've got CCSv7 working reliably. On MacOS, I'm also getting some mileage out of embedXcode, a nice little item worth checking into ( but it really offers a better-known ( to me ) IDE on top of the Wiring/Energia approach to all this, which I was hoping to get away from. )

  • "BIOS_start" I can help you with...  It's their "Real Time" operating system (RTOS)  You register a bunch of "tasks", and then call "Bios_Start" and essentially, it starts a timer which interrupts the MCU, and swaps to the next task.  So I'm betting using the RTOS costs you one of the timers in the MCU.

    In the case of that BBB project, it never registers any tasks for the Real Time OS, so the RTOS basically sleeps.  The project is somehow setting up it's own timer and registering a callback.   How it registers the callback, I have no idea.  But as a "blink the led with a timer" demo, using the BIOS_Start is really a bad idea.  Unnecessary overhead...

    A lot of the BIOS_Start and RTOS  described in Eric Wilbur's training videos, which are here:

    He described how it works, and how to use it.

    The problem is that they were created on CCS 5, and now, as to be expected, all the useful information is now changed.  But the concepts are there.

    I've been dying to use the RTOS concepts, but can't even get past simply getting a simple project to work out of the box.  Then there is the challenge of doing bare metal access, which means trolling through Gigs of documentation just to figure out how to toggle a GPIO  (Sure, there is demo code, but it's uncommented, that doesn't explain the why or how).

    Ah well...

  • With (all) of my power - shall resist "banter" and, "Stick to (only) "real-world difficulties!      Right!     (already staff/I "dying of boredom")

    This vendor offers highly effective, periodic, MCU training.    Have you engaged your local Sales office - and requested guidance - that appears obvious - yet unmentioned.    (or I missed that)

    It should be noted that you've introduced "bbbAM335x" - which appears either OUTSIDE TM4C - or as some "joint/combined" multi-MCU project - which are NEVER as "crisp/clear - dare I say "useful" as you'd like.

    When all else fails - might you seek out a local University - or Tech firm - where those w/recent & focused vendor MCU experience may be found?      Depending upon your location - a small ad in a local newspaper - or "on-line" - is sure to generate response.       Indeed (some) cost is involved - but is there not cost in your, "Lost time, effort, aggravation" following your "existing path?"      (seeking (apparently) only "FREE" assistance.       That's unlikely to yield the best or fastest - and may prove limiting or mis-guided)        As I wrote earlier - if you can "make some case for potential volume" I believe a skilled FAE would, "Find his/her way to your door-step!"     (indeed - they found ours!)      In addition - you've reported favorably upon several Tech Videos - perhaps contacting them proves of value...

    Often knowing, "How & Where to go" for "best practice assistance" proves invaluable - both for "today's needs" and those "long into the future..."      The rear pages of most Electronic Press (i.e. magazines) often carry ads of those skilled - and available to assist - again these involve cost.

    Solutions ARE available to you - might it be that your "acceptance criteria" serve as a "Blocking Function" - and may warrant (some) consideration/adaptation?

  • If you're dying to try RTOS concepts might I suggest looking at Free-RTOS? It's not tied to TI (or even ARM) and it appears reasonably documented.

    TI's RTOS offerings appear to use a static configuration which can be a difficult place to start learning.

    Robert
  • I have heard about Free-RTOS, but haven't looked at it. The doc on SysBios RTOS isn't that bad.

    What drives me crazy is not finding out how to simply activate a GPIO, (I try to set a GPO pin, and it gives me some kind of bus fault)

    ... or how to load one of those demo boards such that it actually survives a power cycle (Yeah, my Piccolo device loads and runs fine, and if you power cycle it, it goes back to the out of the box demo??? WTF??)

    Free RTOS isn't going to solve those learning problems.

    -Scott
  • My boss had offered me the opportunity to work in this field, as I have done MCU level devices for decades (mind you more in the "hobby" realm). But no budget, and little time. But I do love that low-level world better then living in the OS "user space".

    He did this because another division of the company has switched to using TI devices, and uses a contractor for their development. He thought he could impress some higher ups by throw me as a resource to assist them. Sure, I can port a bunch of libs over, but this is a different world, even from Intel and Microchip PIC that I've been doing. He doesn't realize this is essentially like a new hire learning a complex system.

    The division is trying to learn this too as they don't have a lot of experience in software. Plus they are located across the country. And they have all the development hardware and prototype devices. The contractor is doing this work in addition to his full time job elsewhere, and is not sharing a lot (perhaps to keep his own invoices flowing? ). When I complain I only get 40% response in the forums, it's still better than they give me.

    Eric Wilbur's videos are useful, but he went independent running his own training, so I doubt I he will share anything else low cost. His web site says there are freely available materials, but I can't find any links to them. What does that tell you if a TI guy quit to make his fortune teaching people how to use the TI devices...? It tells you TI has done a poor job for providing organized doc. I never had to go to an outsider training organization for x86 or PIC help.

    I got my hands on Valvano's books, from the university of Austin, and they are just about the correct level I am looking for. Lots of C based material which is superfluous for me, being a PC developer for 30+ years. But it does detail the TM4C devices, and goes into the ARM assembly code, IO ports, UART, SPI, I2C, timers, interrupts, ... All stuff I've done on other devices, just needed some structured training and doc on this silicon. The trick is figuring out what part of C to skip because I've long since mastered (functions, globals, locals, arrays, pointers, memory, threading, mutexes, ...) , while not missing details of the devices themselves.

    Finally, his book is on the Cortex M devices, which aren't exactly what the other division is using, but closer than anything else I've found.

    Anyway, even if this fails to assist them, I am really hungry to learn this product line. On my own time. And money.

    - Christopher "Scott" Weber.
  • Christopher Weber said:
    What drives me crazy is not finding out how to simply activate a GPIO, (I try to set a GPO pin, and it gives me some kind of bus fault)

    ... or how to load one of those demo boards such that it actually survives a power cycle (Yeah, my Piccolo device loads and runs fine, and if you power cycle it, it goes back to the out of the box demo??? WTF??)

    Free RTOS isn't going to solve those learning problems.

    True, hopefully you are not using any RTOS at all while figuring that process out. Just use the TIVAWare libraries. It's quite straightforward.

    Robert

  • Noted is a (long) list of attempts which you've made - but only slight/selective comment upon the (multiple) suggestions - offered in your behalf.    Those were submitted as firm/I use them - surely on a "weekly basis" (often more often) and "know" of their success.

    I would suggest that you "LASER FOCUS" upon the "Peripheral Library User Guide" and the strong/solid, vendor created, illustrative code examples.     In addition - via the forum's "Search Box" (atop the forum page) - your entry of the "proper" Keyword will unleash a "Pandora's Box" of (reasonably) focused materials - which should greatly assist your development & understanding.

    Finally - your "recital (above) here" - to my mind - would be FAR better directed to your boss!       Those here - in no way - caused nor created your dilemma - your report  "Even Project 0 Fails!"  carries (some) element of  "whine" (and/or "defeatism") - does it not?      And then - when multiple suggestions are offered (in your behalf) - few receive acknowledgement!        

    Wish you success - yet a better targeting of those "Guilty" - and (improved) reaction to input voluntarily provided - would seem a more productive path...

  • Yes, I am aware that it is not the community that is responsible for my assignments. I did, however, simply want to describe what set me on this path months ago, and that the progress has been minuscule, and although my original assignment is generally abandoned, I do not wish to surrender my attempts to develop on these devices. I still am trying, except out of my own pocket.

    You suggest the "Peripheral Library User Guide" - Oh joy, yet another undiscovered document which I have not yet stumbled across.

    Your reports may summarize my postings, but I am doubtful that there is a report which shows the extent to which I search using the "Search Box" before I finally resort to posting something in disgust.

    I'll admit to being lacking in my acknowledgment of of suggestions. Some are my fault, some are due to not solving the problem (or in some cases answer my question). If there are unacknowledged replies, some of them were long after I threw up my hands and moved on. In this thread, I marked the correct answer from Charles Tsai ( with a little frustration of the challenge in determine the MCU designation). The thread ended on April 19th. Then it was kicked back to life on June 1st.

    I've now got a pile of abandoned launch pad boards, for each time I gave up and moved to another platform (Piccolo, BBB, MSP 430, Tiva-C...), in the hopes that the next collection of training materials will be more successful. All that was happening was I keep buying more tutorial boards from TI.

    I am finally getting somewhere with the TM4C1294XL plus the Valnano books. Once I got past the initial problem.
  • Christopher Weber said:
    I am finally getting somewhere with the ...

    Good for you - and I'd be willing to bet - from the "facts, thus far in evidence" - "Undiscovered Documents and indirect/twisting paths" reside w/in your firm - as well."      (Perfection proves an elusive goal...)

    Writing effective - clear Tech Manuals is both science & art.     (I past did that (p.t.) while a Mgr. at (another) giant semi-house)      There is (always) "rush" - and the uncertainty of, "just whom the writer is to address" - and marketing's (always gentle) "You finish that damn manual - yet?"     That past vendor - and this one - have a "vast" footprint - great clarity IS a goal - execution is (another) story...

    Boards "abandoned" (assuming proper handling & storage) should achieve near unlimited, "shelf-life."

    I often advise clients - in situations not unlike yours - to make the effort to find (others) with near/similar interests - there IS "Strength in Numbers."      Another may immediately grasp a concept - I may stare at the same paper for hours.      And (sometimes... ok "rarely")   such may reverse...     And that day is well-marked - and celebrated.

    As earlier advised - an inexpensive "ad" - landing in/around Dallas or Austin - is almost certain to trigger response.      (Not to ask - "How I know?...")

    The "Peripheral Driver User Guide is "SO GOOD - SO USEFUL - SO UNIFYING" that I'd wager you'll "soon be back here" - and "Verify (this) post" as the BEST Submitted Answer!     (Which clearly - it is ...  ... friend Charles (even thru "tears") - will understand...)

  • I would mark such an answer as "verified" except I have yet to find the "Peripheral Driver User Guide", and no link was provided.
    I assume is NOT to be confused with the "TivaWare Peripheral Driver Library, User Guide" (under the file name SW-TM4C-DRL-UG-2.1.4.178.pdf which is among the 50+ PDF files I already have).

    After all, the
    "DK-TM4C129X Firmware Development Package" (SW-DK-TM4C129X-UG-2.1.4.178)
    is not the same as
    "EK-TM4C1294XL Firmware Development Package" (SW-EK-TM4C1294XL-UG-2.1.4.178)

    And I am new enough that I have yet to learn what the single letter change from D to E means.
    But I've been burned enough to now know that I should find the EXACT project/title/document/name/part, because I've wasted hours or days going down a rabbit hope with a doc that turned out was only one or two characters different. (In fact, that how this thread started)

    Besides, I already marked thread as solved way back when this started. :-)

    Just for your entertainment at this newbie...
    Today, and yesterday, I burned 5 hours trying to determine a "FaultISR". It was coming from such an innocuous function as "strcat()". Imagine my surprise: e2e.ti.com/.../452447
    The pointer was corrupted from an sprintf() a few lines before.

    I would like to have a doc on these common C lib functions that has been red warnings on them about these limitations. I've overflowed more than my share of stacks back in the old DOS days, but this was rather startling.
  • Using any of the printf family on an embedded processor is a risky proposition. That's not limited to these particular ones. They can really only be considered safe after you've done enough work that you don't need them.

    For that matter, they're not considered safe for large desktop code either.

    Robert
  • BBB!???

    I just noticed this. Please tell us you're not trying to run BBB code on a TM4C device.

    Robert
  • Christopher Weber said:
    I assume is NOT to be confused with the "TivaWare Peripheral Driver Library, User Guide"

    And "Why would you assume such - they ARE (remarkably) similar - are they not?"      Note too - over time - vendor has, changed the name of such documents.     And - the similarity (redundancy, really) would reveal immediately upon your "side by side" opening - and few page turnings...

    Christopher Weber said:
    Besides, I already marked thread as solved way back when this started. :-)

    Assumption once again lands - there is NO limitation upon, "Number of Verified Answers" - and the time/effort/focus devoted - points strongly to the newer arrival as "more valuable."     (and you've been assured - Charles will not "cry.")

    It appears that the barrage of suggestions - each in your behalf - has "not" met full (perhaps any) acceptance.      (and yet those enabled co-founding - spectacularly ramping Sales - & taking past tech firm, Public!)    Should it be noted that, "Feeling one's pain" is likely to diminish when suggestions "sit" (often unthanked) and issues (too predictably) persist.

  • As I'm enbarking on roughly the same journey, I've been hunting down these docs myself.

    Perhaps(?) the whole library is here: (Jeesh, one can hope, right?!) - though, annoyingly, one of them is TivaWare™ for C Series Release Notes SW-TM4C-RLN-2.1.3.156 (Rev. E)

    - though we're using TivaWare 2.1.4.178 - installed from the same page...

    SW-TM4C-DRL:
    TivaWare™ Peripheral Driver Library for C Series -- is the TivaWareTM Peripheral Driver Library Users Guide

  • As earlier noted - those names may have (marginally) changed - and (few ... perhaps NONE) landing here have appeared, "so challenged."

    Would not a simple, "Opening & side by side comparison of  "Table of Contents" and (maybe) key sections - quickly & easily prove sufficient?"

    Endless protest - and failure to employ the (obvious) basics - is not famed as, "sympathy builder..."

  • Yes, I have long since mastered defensive coding, to the point that things like strcpy_s is really kind of superfluous.

    And sprintf() wasn't my first choice due to performance, but was a "quick solution" to a test and learning project I was working with.
    I have written my own versions of tools to convert binary data to displayable string over the years. Had I known that it was the source of the problem, I would have dusted off some of those functions and used them.

    Alas, it took a while to learn that.
  • LOL. No, that is just yet another board in my pile of devices that I tried to learn but the material was completely un-followable. I am using the TM4C1294XL launchpad, and now have things working to the point that I can write code and make it execute. (Up until now, every launchpad and board I bought would not function with out-of-the-box examples, or would exhibit behavior which I did not understand and I found very little help explaining it)

    The BBB "example" program used something like 10 different #ifdef macros locking out sections of code from compiling. Why? and why is it an unfollowable example compared to others.
    I tossed that question in here, because I asked it in another post, and no one answered. At least on this thread, there are people replying.

    On other posts, I have very little response, whether I make the post very humble, or very loud and annoyed.

    Going back to my original post, and the answer from Charles, this was an out of the box example project for the TM4C1294XL, which apparently the suffix letters make a difference to. When I used the correct one, it was fine. So I marked it as answered.
  • "And "Why would you assume such - they ARE (remarkably) similar - are they not?" "

    When this thread started, the dk-tm4c129x  looks remarkably similar to the ek-tm4c1294xl.   It should work, right? They are "remarkably similar".

    The "x" implied that it's generic enough to work, just as all the doc for the AM series are AM335x.  Why would it not apply in this case?  Why should I not assume that the little "x" is simply a placeholder wildcard?

    And yet...  it didn't.  That's where I went wrong.

    So, I trend in this forum, ready to be scolded that "Obviously they are not the same thing, since they are not the same name", and now waiting to be scolded because "You should know that they are similar enough to be the same thing".

    Which answer would I mark as "verified"  The one where I am told to use a document, but not where it is?  or the one where I am told that I'm not smart enough to realize documents of different names are the meant to refer to the same thing?  

    Or the suggestion that I ask a sales office to provide me training (discount, free, or otherwise) based on the idea that we "may" decide to use the product line, or that I've elected to attempt to learn it as a hobby in any event?  A valuable idea, and I have done it in decades past However I do not feel enough hubris to as for things without also providing a large purchase commitment.  Logically, if I didn't do it, I wouldn't claim that it's "verified".

    I have in fact, gone back and re-read the thread on more than one occasion. With regard to the original problem I experienced, and the subsequent postings, there is only one that does answer my original question.  

    There were, however, discussions about IDE's and compilers, which LouEEEE was inquiring about.  As such, he should mark any replies as "verified" as he deems appropriate. I however, didn't ask.  Nor do I feel ready to attempt to assemble a build environment in DIY fashion as Robert has indicated.  Once I have projects that build *inside* the IDE, then I have a measure of success to build them *outside* an IDE.

    Reset assured, when I undertake that step, people will likely hear from me again.

    And yes, I agree with Robert.  I long since miss many Borland products.

  • Glad to hear you are not trying to use the BBB code.

    Although I am not familiar with the code you mentioned I can suggest some reasons it may be highly ifdefed. The BBB is essentially designed as a Linux box that also has ports for Android and, I think, Free-RTOS. As such it's entirely possible that program was providing support for three different OS setups and a C based library for higher level scripting languages. Such an example would be inherently complex.

    It's possible, at least sometimes, to manage that but that may introduce complexity of it's own.

    As far as your complaint about post response. As far as I can tell, and I did search, this is the only thread you've posted to on this forum. Your posts have been obviously marked by your frustration and the responses have been generally aware of that as well.

    Robert
  • You missed my complaint about the editors. It wasn't that Borland wasn't around anymore. My complaint is that Borland bought two perfectly good products and destroyed them. Although, to be fair, in the case of Codewright it was destruction by abandonment rather than a more active act. Sadly they were products at or near the top of their niche when they were bought.

    That action did generate a good deal of ill will for them.

    Robert
  • Note that this behaviour with Editors contrasts strongly with their earlier acquisition of Wizard C

    Robert
  • Christopher Weber said:
    "You should know that they are similar enough to be the same thing".

    The above aimed exclusively at my past mention of, "Peripheral Library User Guide" - offered as a key aid in your behalf.    (and again - unthanked - and (even) attacked!)

    You offer up - at best - a series of "Straw Man" arguments to confront the (apparent) lack of "side by side" comparative document analysis - which you failed to make.    The likelihood of "major changes" w/in such "User Guides" - addressing the same general class devices - is not generally expected.     And again - from the facts in hand - you demonstrated little (perhaps NO) such effort.

    As to the visit (or call) to most local Sales Office - surely such effort trumps, "Doing NOTHING" - or endlessly complaining - while attacking those (generously) giving of their time/effort - in your behalf!     I offered that suggestion in your behalf as we had a fairly recent report - by a "small" client - that their Sales Office performed "Above & Beyond" - and directed that (small) client to a local "expert!"      Yet regularly & repeatedly - you reject such pointed suggestions - substituting your "beliefs" - which have not proven especially successful - is that not (very) true?

    We are told to "rest assured" - but I choose to reject such assurance - will wish you well - yet remain in grave doubt that (your) methods will - anytime soon - lead to other than, "Continued Heart-Break."

    If unclear - I cede this thread to (others.)      Again - I have offered a multitude of ideas(all unthanked) in your behalf - and have reached my limit...

  • Robert,

    " this is the only thread you've posted to on this forum"

    Can you clearly define "this forum" ?  Do you mean the E2E community?  Or just this device?  Or some subset?  

    (Also, since I spend a month trying to convince someone from the TI web site group that their hyperlink was pointing to the wrong PDF file, or teach him why he can't embed HTTP external JS files in HTTPS connected pages, I don't place a lot of confidence in TI's ability to make their search tools work correctly)

    Being a "newbie", I didn't place a lot of weight on pressing  "verify" when some posts a reply.  Especially when I have to reply again, trying to clarify my question, or get more explanation on a reply.

    Just looking through my account history, I see these:

       (Answer verified)

      (The ONLY reply was "the RTOS team will reply"  No one did)

      (Never got an adequate answer on the original )

      (Just now verified)

     (never got to a solution from a reply)

    There are people who post some "go read this" links, sometimes helpful, sometimes I've already been through them and ended up posting a question.  Kind of annoying being to to look in a place I've already been, rather than attempting to understand my question.

    There are people who try to understand my question and reply, I have had some useful conversations with them. Then I have a tendency to ask them questions from other devices which may not belong under this device thread (my BBB question on this thread), but because they actually give answers... I am hoping they will know.  If not, I hope there is no real harm.

    (And there are people who just post arrogant replies, with Oscar Wilde style embedded insults. LOL )

    In any event, thanks for your replies.

  • Dear "Mobile":
    "We are told to "rest assured" - " LOL LOL!!

    I never said that. Clearly the "straw man" argument comes from you. Thank you for reinforcing my point.
  • Note that CERT has reservations about strcpy_s

    "The C Standard Annex K functions are still capable of overflowing a buffer if the maximum length of the destination buffer and number of characters to copy are incorrectly specified. ISO/IEC TR 24731 Part II functions can make it more difficult to keep track of memory that must be freed, leading to memory leaks. As a result, the C Standard Annex K and the ISO/IEC TR 24731 Part II functions are not particularly secure but may be useful in preventive maintenance to reduce the likelihood of vulnerabilities in an existing legacy code base."

    Not that they can't serve a purpose but that dependence upon them should be limited. I've found static analysis (in my case PC-Lint) catches errors strcpy_s would fail to catch and much that it would catch and it does so before execution.

    Robert
  • This forum is the tiva-arm/TM4C forum. TI has gathered multiple forums (fora?) under the e2e banner but they are quite distinct from each other and do not necessarily share a common culture. On some you will only see answers from TI personnel, these tend to be dry and the answers may not probe beyond the surface.

    This forum has a lot of participation with contributions from outside TI and answers will come from a broader perspective. Many times they will push you to a deeper understanding of the issues in the process.

    Since there is minimal cross following of other forums you cannot expect us to be at all aware of your posts to them.

    One final thing to keep in mind, text is a hot medium. It conveys emotion well even when it is not intended. If you read emotion such as hostility into a post there's a reasonable chance it isn't there. This is especially true if you are already frustrated and emotional. Likewise it's easy to inadvertently express emotion you didn't intend and appear dismissive or hostile. Recognize that others may read emotion you did not intend to convey.

    Robert