zoukankan      html  css  js  c++  java
  • skyeye的安装过程与helloworld的执行

           昨天借了本书叫做<<一步一步写嵌入式操作系统>>,本着我“要学好一个平台就学它的操作系统的原则”的名言。于是就借来看看。

          第一步就是就安装一个书中给出的模拟软件叫做skyeye,这个难不住我sudo apt-get install skyeye  安装后运行后,出现如下提示: Your elf file is little endian. arch: arm cpu info: armv4, arm920t, 41009200, ff00fff0, 2 mach info: name s3c2410x, mach_init addr 0x806d3c0 uart_mod:0, desc_in:, desc_out:, converter: SKYEYE: use arm920t mmu ops Loaded RAM ./helloworld.bin然后就卡在那停止了。经过百度后发现,skyeye的源码有几十M,而使用apt-get install安装的才几百K,于是去找源码包进行源码安装。

          安装步骤如下:

         1.进入网站http://cdnetworks-kr-1.dl.sourceforge.net/project/skyeye/skyeye/skyeye-1.3.2_rc1/下载安装包并进入安装包所在的目录。

         2.输入如下代码 tar xvf skyeye-1.3.2_rc1.tar.gz cd skyeye-1.3.2_rc1//默认安装在/opt/bin里面,在这里更改为/usr/lcoal ./configure --prefix=/usr/local sudo make sudo make lib sudo make install suod make install_lib如果出现编译错误使用sudo apt-get install libncurses5-dev来修改这个错误)

         OK,那来写个HelloWorld试试吧代码如下:helloworld.c

            /**========================================================================= Author: findstr Email: findstr@sina.com File Name: main.c Description: Edit History: 2011-10-16 File created.=========================================================================**/void helloworld(void){ int i; char * hellostr="helloworld"; long* paddr=(long*)0xfffd001c; //这里的0x50000020 为2440 UTXH0端口地址 for(i=0;i<10;i++) { * paddr=hellostr[i]; } while(1); return;}Makefile如下:CC=arm-linux-gccLD=arm-linux-ldCONV=arm-linux-objcopyCFLAGS= -c -O2 -march=armv4 -mtune=arm7tdmiENTRY=0x0ENTRYFUN=helloworldCONVTYPE=binaryTARGET=helloworldOBJ=helloworld.o.PHONY : allall :$(TARGET)$(CONV) -O $(CONVTYPE) $(TARGET) $(TARGET).bin$(TARGET):$(OBJ)$(LD) -e $(ENTRYFUN) -Ttext $(ENTRY) {1}lt; -o $@helloworld.o:helloworld.c$(CC) $(CFLAGS) {1}lt;clean:rm -f *.o *.bin $(TARGET)最后skyeye.conf配置文件如下:arch:armcpu: arm7tdmimach:at91mem_bank: map = M, type = RW, addr = 0x00000000, size = 0x00800000,file= ./helloworld.bin,boot=yesmem_bank: map = I, type = RW, addr = 0xf0000000, size = 0x10000000uart:mod=stdio运行结果:OK,大功告成!

  • 相关阅读:
    C#中关于@的用法
    c++ 中__declspec 的用法
    #pragma详细解释(一)
    memmove 和 memcpy的区别
    【niubi-job——一个分布式的任务调度框架】----安装教程
    [异能程序员]第一章 酒后事发(第一更)
    博客园的最后一篇博文,还是要离开了(附带个人博客源码分享)
    五一假期——技术之路上的坎儿
    deerlet-redis-client添加集群支持,邀请各路大神和菜鸟加入。
    从日常开发说起,浅谈HTTP协议是做什么的。
  • 原文地址:https://www.cnblogs.com/findstr/p/2803710.html
Copyright © 2011-2022 走看看