Talking to a 'C' program

J

John Pote

Hi all,

I have the task of testing some embedded 'C' code for a small micro-controller. Thought it would be a good idea to test it on the PC first to make sure the algorithm is correct then perhaps test it on the controller via RS232 and an appropriate wrapper round the 'C' functions.

On the PC I can use Python's unit test library module and logging to create a nice and easy to use environment (I like Python). So my question is how to communicate from Python to the C module on the PC. What I'd like is simplicity and ease of setting up. All I can think of myself is to use sockets.

Any ideas on how to do this would be gratefully appreciated.

Also as I don't have any microsoft offerings of a C compiler any suggestions as to a suitable C compiler for a PC appreciated as well. llvm? mingw? gcc?

Thanks a lot everyone,
John
 
G

Grant Edwards

Hi all,

I have the task of testing some embedded 'C' code for a small
micro-controller. Thought it would be a good idea to test it on the
PC first to make sure the algorithm is correct then perhaps test it
on the controller via RS232 and an appropriate wrapper round the 'C'
functions.

On the PC I can use Python's unit test library module and logging to
create a nice and easy to use environment (I like Python). So my
question is how to communicate from Python to the C module on the PC.
What I'd like is simplicity and ease of setting up. All I can think
of myself is to use sockets.

Sockets are nice and simple. Depending on what you're doing,
stdin/stdout may be even simpler.

For the RS232 part of the problem, don't forget about pyserial:

http://pyserial.sourceforge.net/pyserial.html
Any ideas on how to do this would be gratefully appreciated.

Also as I don't have any microsoft offerings of a C compiler any
suggestions as to a suitable C compiler for a PC appreciated as well.
llvm? mingw? gcc?

I've occasionaly used mingw (which _is_ gcc), and it worked well.
Cygwin (also gcc) works well, but it's a bit more involved.

I do all my embedded development on a Linux host. I find Linux to be
far more suitable for the task -- the entire Unix system basically
evolved as a software development platform. I've yet to figure out
what MS-Windows is suited for other than lining Bill Gates' pockets.

Before Linux, I used Solaris/SunOS, and before that I used Unix V7.
Everytime I've been involved in a Microsoft-hosted embedded
development project, I just end up walking a way afterwards shaking my
head in puzzlement.
 
J

John Pote

Thanks everyone for the advice, some good ideas to keep me busy. Will try and look at over weekend/next week as tied up the rest of today.

I've used pyserial several times - many thanks to Chris Liechti for that module

Hmmmmm must be loosing it, forgot about stdin/out!

I've also used CUnit before and it's nice an easy and small. Problem is I've only 500 bytes code space left on the micro-controller so by the time CUnit gone in with the various tests I'm gonna run of room. I have to keep the RS232 driver in as well as it's the only way to talk to the controller.

Python + pyserial enables me to run the tests with the C compiled and run on the PC as well as compiled to run on the micro-controller. Python is a great environment for doing this sort of thing and, as has been mentioned, a GUI can be added easily (time permitting).

Thanks again all,
John
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,023
Latest member
websitedesig25

Latest Threads

Top