It's seems that there are problems if just following the instruction in their wiki page. Try the instructions below if you have problems while installing nox.
choose a faster distribution site, like "[16] ftp://ftp.u-aizu.ac.jp/pub/gnu/cygnus/ecos", which may locate in Japan
choose a location to store the downloads, take default /home/<username>/ecos as example in this article
select "[1] arm-eabi", which is said in my course assignment instruction; however, I found we don't need this if we have arm-none-eabi (which we've installed already)
cd /home/<username>/ecos
cvs -z3 -d :pserver:anoncvs@ecos.sourceware.org:/cvs/ecos co -P ecos
in file "ecosenv.sh", modify "ECOS_REPOSITORY=/home/<username>/ecos/ecos-3.0/packages ; export ECOS_REPOSITORY" to "ECOS_REPOSITORY=/home/<username>/ecos/ecos/packages ; export ECOS_REPOSITORY"
. ecosenv.sh
this exports the system PATHs for ecos tools
Create HelloWorld Project
cd <somewhere you like to place you project>
mkdir ecos_project && cd ecos_project
ecosconfig new stm32f4discovery
configtool
change "eCos HAL->Cortex-M Architecture->Cortex-M3/-M4 STM32 Variant->STMicoelectronics STM32F4-Discovery board HAL->Startup Type" to ROM instead of JTAG
this starts an GUI interface, open the "ecos.ecc" file which locates in the folder "stm32f4discovery" just created
press "Build" -> "Generate Build Tree"
create an hello.c file, like:
#include <stdio.h> int main(){ printf("hello ecos!\r\n"); }
Though Mac OS is based on FreeBSD, but still lots of unix-based tools are not as good as those on Linux. And, it turns out people start to use "port", "brew", etc to get the tools they want. However, in my point of view, "port", "brew", etc are still not good as "apt-get" or "yum" since they are not well integrated.
So, I am using VirtualBox with Ubuntu guest. And, I write a simple script to:
Start the Ubuntu VM
SSH into the machine
Save the VM state when finishes SSH
I don't even need the GUI of Ubuntu. Also, the machine saves its state instead of turning off, so I don't have to wait long.
While I was discussing with Shumin, I found there are few things I don't really sure, so I wrote them down and try to find out the answers here. Since these are part of the discussion, they may be not that formal and precise.
"Does the number of Cores = the number of kernel threads?"
While we were studying for the midterm of Operating System, few people started to ask this question. It seems that the textbook, "Operating System Concepts (by Abraham Silberschatz, Peter B. Galvin, Greg Gagne)", doesn't explain this clearly enough. Therefore, I started to find out the answer on the internet. Here comes my study.
Answer
NO! The maximum number of the kernel threads can up to around 15,000 on a general machine. And, the number of the cores mostly are round 2~4. It means that "one core can run more than 2 kernel threads in the same time", which is called "Hyper-Threading".
I've been working on this app, "Pitch It", for around one month. This interesting work is cooperated with Shumin, who has brought out lots of beautiful design and being a great partner.
"Pitch It" is a note guessing game. It plays a music note and ask to the user to tell if he/she can tell which note it is. People define a person who have "absolute pitch" or "perfect pitch" if he/she can answer more than 70% of the questions. With this app, the app can tell if you have "absolute pitch" or not.
On the other hand, this app is fast-implemented. I wanted to see how the Apple Store distribution works. That was a little complicated, and take a long for app reviewing by Apple. There, I write done time when the state is changed of this app on iTunes Connect.
Sat, Nov 2, 2013 at 12:38 AM: turned to Waiting For Upload
Sat, Nov 2, 2013 at 01:18 AM: turned to Waiting For Review
Fri, Nov 8, 2013 at 06:32 AM: turned to In Review
Fri, Nov 8, 2013 at 07:58 AM: turned to Processing for App Store
Fri, Nov 8, 2013 at 08:45 AM: turned to Ready for Sale
It means that takes 6 days for "Waiting For Review" state, and less than two hours for them to review and release.