And thank you for your response William Hermans.
I have some questions.
-When I am using a windows machine and I need to write a code for a Linux machine, I require cross-compiling?
No. I recommend cross compiling the kernel on a PC however. The reason is simple. It would take days to compile the kernel natively. Also, the person( Robert C Nelson ) who “maintains” the current shipped images for the beaglebone blacks ( among many other devices / boards ) has excellent instructions on how to set this up. https://eewiki.net/display/linuxonarm/BeagleBone+Black
So for instance Most of the applications a single developer will write, will take mere seconds to compile natively on the Beaglebone black. Then some larger project such as say Nodejs, will take 30-60 minutes to compile natively. In the above Nodejs case you need to weight your options while considering cross compiling. Are you very familiar with gcc toolchains, and setting up a cross compile toolchain, or would you have to spend days, weeks, or possibly months to figure this out ? In my own case, I know how to setup gcc to a point, but figured my time would best be served just doing native compiling, and moving on to my next hurdle - if any.
Anyway, I could go on for days about the various aspects of how, when, or why ( or even why not ) to cross compile. So, I’ll just leave it at this for now and wait for specific questions.
-What is your recommended choice for a text editor on a windows machine?
I recommend whatever you feel most comfortable with. Personally I prefer sublime text 3, as I also prefer dark themes while writing code( easier on the eyes ). Also you can use it as a simple editor, or use some of the more advanced features such as multi line editing ( at once ), or even use vim inside the editor. It’s called classic mode or something like. Anyway, this is more than just about the editor in this case as it has binaries for Linux, and I think OSX too. for Windows It is kind of hard to explain, but its part esthetics, part feeling “polished”, and generally my ability to get things done faster while working in Windows in this capacity. This would probably more of a subjective type thing. But having years ( well over 15 ) experience with Linux, and Windows, I prefer my desktops to be Windows, while most / all my server, and some of my workstation stuff to be done under Linux.
-You said you compile your code natively on the BBB, what does that mean? You mean uploading/burning the code?
This means you use the compiler(s), provided by the OS you’re using, on the hardware your using it on. In this case, you’d use the armhf versions of the gcc toolchain as provided through the Debian package manager APT. So as a simple example. You write the code in text format on a Windows machine, potentially. Then you move these files over to the Beaglebone black, where you then compile the code with whatever compiler you need to use. Some would argue this is bad practice as Windows versus Linux line breaks can be different. But if you know how to deal with this, there is no problem ( UTF-8 files )
-Finally you mentioned, “you wish to cross compile the kernel”, can you please elaborate that?
I’m not sure what you’re asking here. DO you not know what a kernel is ?
(Sorry about lack of knowledge of Linux & its code-compilation procedures. I have been studying them but it helps a great deal to ask people who have used it.)
Let me just say that it would probably behoove you to pick up a good book on gcc toolchains. Which is something I’ve yet to do, but I’ve been lucky enough to know people who do, and having the chance to pick their brains once in a while. I pretty much cut my teeth on the gcc toolchain for the MSP430 launchpad as provided by the Energia project. Essentially, I did not like the Energia ( wiring ) IDE but the gcc 4.6 toolchain binaries provided with it worked very well. Also, when the beglebone black first came out, we got two, and I knew nearly nothing about embedded Linux. It just took some time, reading, and trial + error to figure out many of the things I understand today.
One of the most memorable for me was reading through tons, and tons of uboot information. Trying to get NFS root working on our beaglebones. Until I finally understood enough to ask a decent question of Robert Nelson. Which he pointed me to a C header file that filled in all the blanks for me.
Anyway, the over all point is - If you’re willing / wanting to learn. Then you’re pretty much in the right place with the beagelbone black.