As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Ive been searching around and I couldnt find anything on how to really begin programming for the Odyssey 2. I thought it was be kind of fun to mess around with one, to maybe try and program a simple game. But I wanted to know how I could begin. Like for example what is the console coded with, assembly? C?
Is there any example code online? Are there some tutorials?
I have been trying to find some, but have had no success.
It has only 64-bytes of memory, so yes, you need to use assembly.
There is an open-source, well commented game Kill the attacking aliens which should help you get started. When in doubt, you can also check the source codes of Odyssey² open-source emulators o2em.
There is also a good deal of documentation of the system here (this page in particular).
It has an Intel 8048 CPU, so you're probably pretty much stuck with assembly language -- I don't know of any compilers that target an 8048, and with only a couple hundred bytes of RAM available (only 64 bytes of that for general-purpose use), it doesn't seem like a good target for a compiler either. There are a few 8048 assemblers around, mostly of them freely downloadable. You can also dig up a few Odessey 2 emulators if you do a little looking (again, at least some are free).
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I really would love to go through the experience of building a compiler, lexer, and so on using C, however I havn't found a single resource on creating one. I've read the book about creating your own language using Ruby, but it just talks about how C is the best option, and won't tell you where to go from there.
Is their any nice resources for building a language using C? I don't care how long it is, I just want to know how to build one.
One of the nice things about compilers/interpreters is that it doesn't really matter what language they are written in. In the final stage they will just be an executable on someone's machine.
That being said while writing my compiler (something I am currently doing) I have used several books that have been extremely helpful:
Compiler Construction by Niklaus Wirth
Compilers Principles, Techniques, and Tools by Jeffrey Ullman, Alfred Aho, Ravi Sethi
The Wirth book will walk you through all the stages of creating a compiler for a language called Oberon-0. It also has the entire source code for his finished compiler, so you can play around with it on your own machine. The compiler itself was written in Pascal (something else that Wirth created).
The Dragon Book has really good information and examples in C! This may be what you are looking for, but as I said above, the language you write the compiler in isn't all that important.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm aware that there are programable calculators but are there any calculator sized (prehaps bigger) devices that could compile C code?
Almost anything that has a decent sized processor (32-bit) and an operating system that gcc supports can be made to compile C/C++ etc listed here. The tricky parts are:
You need enough storage to have sufficient libraries etc to make it worthwhile. (RAM may also be an issue in some cases, especially if you try to compile LARGE sections of code).
Getting the code onto the device - if you are just copying files over, then it's no big deal, but if you need to actually type code in, you will need a keyboard and a screen.
I personally prefer to use a device to log into my desktop over the internet. As long as you can convince the machine to run ssh or putty (which should work on a lot of things - I can do it on my feeble Android phone - there are versions of Windows phone, iphone and Nokia/Symbian phones can do it too). Now you can compile code on your desktop machine from wherver you are...
Haven't you heard of the Raspberry Pi?
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I have embedded developement board (LPCXXXX) with me. I would like to do various experiments with that. I am not getting experiment ideas.
Please suggest me some good websites where I will get some good project/experiment ideas. I am looking for embedded system projects with source code in internet.
I am unable to find it.
Please help me where I will get embedded system project with source code (Video tutorial is an added advantage)
:-In tag I have added C because I did not find EmbeddedC tag.
Try Martin Thomas's ARM Projects site for a number of projects specifically for various LPC devices and also other ARM micro-controllers which could easily be adapted for LPC.
That's a rather broad question as you don't give much about what aspects of the embedded project you're looking for. The Kernel? The OS (making it small with things like busybox)?
But one good reference might be the Raspberry Pi project you might have heard about recently. It has it's linux kernel published, along with all the necessary OS components.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
see ,
still yet i have seen that most of the embedded application are written in c.
Most of the libraries are written in c.
Device-driver are written in c.
So i want to ask you is there any logical reason behind this?
(My apologies if this post sounds silly/stupid. I thought I'd ask here. Ignoring these core bits never made anyone a better programmer.)
There are many reasons, including but not limited to:
It has access to many low level functions not accessible from many other languages.
It has existed for many many years and has lots of developers that are familiar with it.
If written well it's extremely efficient.
It gives almost complete control over memory etc.
It's very portable, largely due to the myriad of compilers written for it.
Because of Dennis Ritchie. C is easily the most portable language.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I've got a C++ app that ships on Windows and OSX. It communicates with our backend using TCP (encrypted with OpenSSL, natch). I'd like to throw up some speed bumps for folks who are trying to reverse engineer the protocol and/or disassemble the executable.
Skype does an excellent job of this, which is why you won't find a lot of apps that speak skype. Here is a really good read about what it does: http://www.secdev.org/conf/skype_BHEU06.handout.pdf
I'd like some ideas about how to accomplish similar stuff our app. Are there commercial products that make code harder to statically analyze? What is the best way to invest my time to accomplish the goals I've listed?
Thanks,
Some simple suggestions for OSX:
Prevent gdb from attaching to your program
http://www.steike.com/code/debugging-itunes-with-gdb/
(this can be worked around, but will keep some casual explorers away)
Have at least some of the code in your product stored outside the text segment of the executable, for example in data, or in an external (encrypted) shared library.
Minimally protect any sensitive string data by not storing it in plain text. Run "strings" against your executable, and if you see anything that might be helpful to someone trying to figure out the protocol, encrypt it.
GCC's -fomit-frame-pointer option can make debugging more painful (but can interact badly with C++ exceptions).
If I remember correctly Skype is using something similar (maybe they pay them to implement it in Skype, who knows) to "Code Guards" described in:
https://www.cerias.purdue.edu/tools_and_resources/bibtex_archive/archive/2001-49.pdf