Jump to content
zeke

I'm struggling with the CC3200

Recommended Posts

Oh yeah, here's an example of my (possibly over-engineered) LCD driver implementation for Hercules TMS570LS04 + HALCoGen + FreeRTOS:

 

https://github.com/spirilis/herc1202

 

The os_mpu_wrappers was an oddball thing I had to do to fix the Hercules FreeRTOS project generator, maybe they've patched that up since, but that's my most sophisticated codebase with any FreeRTOS involvement so far.

Share this post


Link to post
Share on other sites

Fwiw the FreeRTOS books still come as a password protected PDF but when you buy the printable PDF the print feature is allowed in the DRM. Not sure if a commercial printer can work with that so I printed the Cortex-M3 book last night on my laser printer doing separate odd/even prints for double sided..... that was interesting. Paper was hot coming out after the 20th page or so. But it's printed, bound via binder clips :)

Share this post


Link to post
Share on other sites

That's good to hear. Thanks.

 

I have been sitting here staring at the book page trying to decide if I should purchase the Cortex M3 version or the basic version of the book and now I know.

Share this post


Link to post
Share on other sites

So you all are saying that TI is "pawning" these boards off with no support for TI-RTOS ? That sounds really really strange, but i do know that there are many, and I do mean very many videos on TI-RTOS for very many of their development platforms. In my quick search though I could not find any specific to these boards.

Share this post


Link to post
Share on other sites

So you all are saying that TI is "pawning" these boards off with no support for TI-RTOS ? That sounds really really strange, but i do know that there are many, and I do mean very many videos on TI-RTOS for very many of their development platforms. In my quick search though I could not find any specific to these boards.

I don't think we're saying they are selling boards with no TI-RTOS support.

What we're saying is TI-RTOS is a pain in the ass to get started with.

Share this post


Link to post
Share on other sites

Amen to that!

 

I almost lost self control when descending into the TI-RTOS source code to see how everything was abstracted. Kind of like a surprise finding yourself in a mine craft cave full of spawners for creepers, zombies, skeletons and spiders and you are playing in hardcore mode.

 

 

I bought the freeRTOS books today. The complimentary book they add in for free is 399 pages long!

 

The drm is a pain though. I get it why they have to do it but it's still a pain.

 

I've got lots of reading to do.

Share this post


Link to post
Share on other sites

I don't think we're saying they are selling boards with no TI-RTOS support.

What we're saying is TI-RTOS is a pain in the ass to get started with.

No documentation on how to get the boards to work is as good as no support in my book. However, which processor is the CC32xx series based on ? LM4F ? I know there is lots of information out there on TI-RTOS on those boards . . .

Share this post


Link to post
Share on other sites

@@zeke

 

There is the TI "addon" for CCSv6 that has a lot of documentation for SYS/BIOS / TI-RTOS. However, when looking into this myself it was for the AM335x processors, which is the processor on the beaglebone black's. SO I'm not sure if that is something only for Sitara processors, or not . . .

 

EDIT:

 

There is this : http://processors.wiki.ti.com/index.php/CC32xx_TI-RTOS but I have to assume your googling skills are at least as equal as mine in this case. As the link was the first hit from the results of "TI CC32xx TI-RTOS"

Share this post


Link to post
Share on other sites

@@yyrkoon

 

Yeah, I did find that page. Thanks.

 

Did you notice how much detail is (or isn't) on that page? It's just enough to prove to yourself that you can get it to run. 

 

 

The reason for me shifting my focus to freeRTOS is this page:

http://processors.wiki.ti.com/index.php/CC32xx_SDK_Sample_Applications

 

I looked through the list and noted how many times the OS Support column said freeRTOS versus TI-RTOS. There's not much TI-RTOS in that list but there is plenty of freeRTOS mentions.

 

If the people who compose the example programs choose freeRTOS rather than TI-RTOS then there's something there.

 

So, I take that as an omen about TI-RTOS:

 Abandon all hope, ye who enter here. - Dante's Inferno

 

Share this post


Link to post
Share on other sites

@@yyrkoon

 

Yeah, I did find that page. Thanks.

 

Did you notice how much detail is (or isn't) on that page? It's just enough to prove to yourself that you can get it to run. 

 

 

The reason for me shifting my focus to freeRTOS is this page:

http://processors.wiki.ti.com/index.php/CC32xx_SDK_Sample_Applications

 

I looked through the list and noted how many times the OS Support column said freeRTOS versus TI-RTOS. There's not much TI-RTOS in that list but there is plenty of freeRTOS mentions.

 

If the people who compose the example programs choose freeRTOS rather than TI-RTOS then there's something there.

 

 

So, I take that as an omen about TI-RTOS:

 Abandon all hope, ye who enter here. - Dante's Inferno

 

Haha! Never seen that until now. Lol!

Share this post


Link to post
Share on other sites

@@zeke

 

It's just that like I think spirilis said, I've read that freeRTOS really isn't "up to par". It's been a long time since I've read on it so I can not offer anything specific, but thats the take away I got when reading on the subject matter. Perhaps it's since changed ?

 

I think however the reason why you're not finding any information on the CC32xx specifically, is that the information is already provided for an existing "compatible" ti M4 processor . . . but anyway use what you feel most comfortable with just trying to put all that out there.

Share this post


Link to post
Share on other sites

@@zeke

 

It's just that like I think spirilis said, I've read that freeRTOS really isn't "up to par". It's been a long time since I've read on it so I can not offer anything specific, but thats the take away I got when reading on the subject matter. Perhaps it's since changed ?

 

I think however the reason why you're not finding any information on the CC32xx specifically, is that the information is already provided for an existing "compatible" ti M4 processor . . . but anyway use what you feel most comfortable with just trying to put all that out there.

 

I take FreeRTOS as a "blank canvas".  It provides a scheduler, and synchronization/message-passing primitives, plus it requires (and thus provides as a standard interface) heap allocation mechanisms so you have a malloc/free type of setup.

 

Thus, it can be sculpted into whatever you want it to be ..... or it can be a source of frustration if you would prefer to have all your RTOS-aware drivers written for you.  TI-RTOS does, for the most part or "in theory" might be a better term, provide the latter (at least for some stuff TI-related like MCU peripherals and network stacks like CC32xx/31xx SimpleLink WiFi in native RTOS-compatible form).  So I can see where someone would talk about FreeRTOS being "not up to par", but it's a double-edged sword.

 

For someone who's thinking about this topic in the context of making a product that might become commercialized - that is to say really, of what "foundation" one should commit their time into learning with the purpose of conserving one's time and energy yet maximizing utility, one has a couple schools of thought they can choose from.  TI-RTOS is supported by TI, the vendor, and has device drivers supported by the vendor.  But the build process so far as I've seen seems a bit complicated and difficult to trace and so if you have problems with the drivers, you are kind've beholden to TI to fix them or help you figure out how you're using them wrong/etc.  I guess at some point folks become XDC maestros and experts in the subject but I can't imagine willingly committing a lot of time to getting there when there are other things to spend your time on... as I may have said earlier, XDC appears to be an esoteric attempt to replicate C++'s features in C using a domain-specific language to glue everything together.  Still though, some people like committing trust into a "partner" like TI to provide everything they need, and at some level it's an arbitrary decision.

 

But if you have adequate driver support by other means -- say, the driverlib that comes with most 32-bit ARM MCUs by TI and other vendors, and you have a good idea of how complicated driver implementation & use-cases needs to get to make them RTOS-native/aware (possibly writing special driver tasks and RTOS-message-passing-oriented APIs to wrap them), and/or you are fully willing to write or port your own external peripheral drivers (which you may have to do with TI-RTOS too since it doesn't support every IC on the planet), FreeRTOS is a very transparent RTOS system that you can use as your base.  It's also commercially supportable and well known (supports multiple vendors), seeing as even TI provides FreeRTOS examples in many of its chip lines and driverlib suites (TivaWare, HALCoGen coming to mind).  It's the more DIY option, but some might take comfort in knowing they wrote the most important interfaces from scratch and should understand where things could go wrong.

 

Anyway, that's my 2 cents with my current state of knowledge.  Ask me again once I've digested all those TI-RTOS training videos... (though presently I am digesting the FreeRTOS Cortex-M3 book I printed out)

Share this post


Link to post
Share on other sites

Also in general RTOS terms, while TI-RTOS and FreeRTOS appear to be the only ones supported by TI's examples for the CC3200, there are others out there that are probably more general purpose (not necessarily sporting CC3200 ports but potentially portable)... Micrium makes an expensive but well-known RTOS, the uC/OS series which have "everything and the kitchen sink" drivers supposedly but it's not at all for hobbyists, with licenses costing at least $50K if I'm not mistaken.

 

I just learned recently about RTEMS, which is open source and used by a lot of serious NASA stuff along with who knows what else (started as a DoD project IIRC)... I learned about this from Elecia White's embedded.fm podcast where she once featured the maintainer for a long discussion of it.  http://www.rtems.com/node/66

RTEMS supports some Cortex-M stuff like STM32 if my memory of the podcast serves, so it's probably portable to TI's ARM Cortex-M stuff.

 

RTEMS actually sounds really cool, possibly resume-building project to get involved in

 

Ah yes, there's also Contiki, and I think someone pulled in CC3200 support for that too.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×