Page 1 of 1

How to get started with low - level programming?

Posted: Tue May 28, 2013 12:54 am
by kordag
Hello, I'm a novice programmer or at least I would consider myself one. I spent most of my last years in high school and my current time learning multiple programming languages but not actually doing anything useful. Main reason I ended up doing this is because I kind of had an interest in everything from web development to game development to kernel development. Recently I've been really trying to figure out what I would like to do and I realized that I always loved computer hardware and I found the software associated with it very interesting. I would like to know where to start? I've read many suggestion. Some people recommend buying some device that Linux doesn't support and write drivers for it or help work on the kernel. Others say get one of the Arduino products or something similar and mess with that. I'm not really sure what books to read or what to do. Can anyone give me some advice?

Re: How to get started with low - level programming?

Posted: Tue May 28, 2013 5:22 am
by MarauderIIC

Re: How to get started with low - level programming?

Posted: Tue May 28, 2013 9:11 am
by kordag
The Raspberry PI looks like it would be fun to mess around with. I found the "Baking Pi – Operating Systems Development" course and I'm reading through it now although I need to buy the equipment. So do you think this would be a good place to start?

Re: How to get started with low - level programming?

Posted: Tue May 28, 2013 5:27 pm
by dandymcgee
kordag wrote:The Raspberry PI looks like it would be fun to mess around with. I found the "Baking Pi – Operating Systems Development" course and I'm reading through it now although I need to buy the equipment. So do you think this would be a good place to start?
The best place to start is the one that holds your interest long enough for you to ACTUALLY start. ;)

Re: How to get started with low - level programming?

Posted: Tue May 28, 2013 7:01 pm
by bbguimaraes
As a proud rĪ€ owner, I have to say you can get only fun out of one of those. If you need some help getting started, I started a series on my blog a while ago (which I'm going to continue when I get some free time, I swear!).

I hope you don't mind the advertising =)

Re: How to get started with low - level programming?

Posted: Wed May 29, 2013 9:20 am
by Falco Girgis
Just don't use their high-level APIs and drivers (and especially don't use Java), or I will smack the shit out of you. The entire point is to code close to the metal, and those APIs do nothing but make the high-level CSers who don't know anything about memory mapped IO, registers, peripherals, caches, or architecture feel like they're doing embedded development when they really aren't.

/rant.

Re: How to get started with low - level programming?

Posted: Wed May 29, 2013 5:35 pm
by Vincent
I think that understanding basic computer science (as Falco said >> computer architecture, components, chipsets, memory, cache, registers and other good stuff alike)and low level coding in Assembler, then getting yourself deep into C++ is a great way to go from clueless to super saiyan.

Re: How to get started with low - level programming?

Posted: Wed May 29, 2013 6:00 pm
by kordag
Yeah I understand what Falco is saying. I just wasn't sure if doing something like finding a platform and coding for it from nothing was a good idea. I think I'm going to buy one of those starter kits or something similar. Anyone have suggestions on a micro controller to buy? I looked on other forums but pretty much everyone has a different answer. Preferably one with good documentation on the micro controller itself and not just the APIs they use. The Raspberry Pi is cool but it will cost around $80 or $90 for me to buy and I just don't have the money right now.

Re: How to get started with low - level programming?

Posted: Thu May 30, 2013 5:33 pm
by Vincent
aren't there any simulator softwares of a gadget like those ? It might not be the same as havin the tual device but still...could be a start.

Re: How to get started with low - level programming?

Posted: Thu May 30, 2013 5:41 pm
by dandymcgee
Well you can always start with x86 ASM while saving up. There are a ton of great resources to read and learn.

One of my personal favorites is "The Art of Assembly Language" which you can find for free online:
http://www.ic.unicamp.br/~pannain/mc404 ... sembly.pdf

I learned quite a few nifty concepts that helped me understand not only assembly better, but programming and computers in general.

Re: How to get started with low - level programming?

Posted: Fri May 31, 2013 3:44 am
by kordag
So I keep looking around and found the MSP430 LaunchPad Value Line Development kit. It is a $10 kit that is suppose to be really good. Also thanks for the help everyone.

Re: How to get started with low - level programming?

Posted: Fri May 31, 2013 9:12 am
by Falco Girgis
kordag wrote:So I keep looking around and found the MSP430 LaunchPad Value Line Development kit. It is a $10 kit that is suppose to be really good. Also thanks for the help everyone.
Excellent choice. The MSP430 is a fantastic little truly embedded platform. It doesn't have enough RAM to store all of the printf formatters, and I don't think it even had a heap when I developed for it in college. It has many peripherals that you can play with and interface hardware through, and MSP430 assembly was fucking awesome.

I posted all of my MSP430 (and x86 assembly) assigments here, so you can check them out:
http://elysianshadows.com/phpBB3/viewto ... f=6&t=4015

Re: How to get started with low - level programming?

Posted: Fri May 31, 2013 11:25 am
by kordag
Yeah that is why I bought it and thanks for the link. Also I just bought a Dreamcast. Not sure why but I'll do something with it at some point.