热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

在uClinux文件系统中增加应用程序

文章标题:在uClinux文件系统中增加应用程序。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  编写hello.c程序,代码如下:

  #include

  int main()

  {

  int i;

  for(i=0;i<6;i++)

  {

  printf("i=%d\n",i);

  printf("Hello,embedded linux\n");

  }

  return 0;

  }

  编译hello.c

  linux-dist$">stuyou@UBUNTU:/usr/local/src/uClinux-dist$ sudo arm-elf-gcc -elf2flt -o hello hello.c

  生成hello,hello.gdb

  挂载romfs

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ mkdir romfs_dir

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ sudo mount -o loop romfs.img romfs_dir

  拷贝hello

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ sudo cp ../hello ./romfs_dir

  出错

  cp: cannot create regular file `romfs_dir/bin/hello': Read-only file system

  复制根文件系统到一个新到目录中

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ sudo mkdir new_romfs

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ sudo cp -r romfs_dir/* new_romfs

  拷贝hello

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ sudo cp ../hello new_romfs/bin

  生成新的romfs映像

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ sudo genromfs -f romfs_new.img -d new_romfs/

  修改skyeye.conf,使之使用新的映像

  #skyeye config file sample

  arch:arm

  cpu: arm7tdmi

  mach: at91

  mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000

  mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000

  mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs_new.img

  mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000

  mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000

  mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000

  mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000

  #set nic info

  #net: type=cs8900a, base=0xfffa0000, size=0x20,int=16, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1

  net: type=cs8900a, ethmod=tuntap, hostip=10.0.0.1

  uart: mod = term

  #dbct: state=on

  在skyeye上启动uClinux

  stuyou@UBUNTU:/usr/local/src/uClinux-dist/images$ skyeye -c skyeye.conf -e linux

  得到如下启动信息:

  Your elf file is little endian.

  arch: arm

  cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0

  mach info: name at91, mach_init addr 0x80605a0

  ethmod num=1, mac addr=0:0:0:0:0:0, hostip=10.0.0.1

  failed to setup_module (name:net, type:cs8900a)

  tapif_init: icotl TUNSETIFF erroruart_mod:0, desc_in:, desc_out:, converter:

  SKYEYE: use arm7100 mmu ops

  Loaded ROM ./romfs_new.img

  exec file "linux"'s format is elf32-little.

  load section .init: addr = 0x01000000 size = 0x0000a000.

  load section .text: addr = 0x0100a000 size = 0x000dccd0.

  load section .data: addr = 0x010e8000 size = 0x00009ce4.

  not load section .bss: addr = 0x010f1d00 size = 0x000220a0 .

  not load section .debug_abbrev: addr = 0x00000000 size = 0x0003d30e .

  not load section .debug_info: addr = 0x00000000 size = 0x0186c1ff .

  not load section .debug_line: addr = 0x00000000 size = 0x00304551 .

  not load section .debug_pubnames: addr = 0x00000000 size = 0x0000c30b .

  not load section .debug_aranges: addr = 0x00000000 size = 0x00002438 .

  call armul_InitSymTable,kernel filename is linux.

  start addr is set to 0x01000000 by exec file.

  Linux version 2.4.31-uc0 (root@UBUNTU) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #1 Thu May 13 15:02:46 CST 2010

  Processor: Atmel AT91M40xxx revision 0

  Architecture: EB01

  On node 0 totalpages: 1024

  zone(0): 0 pages.

  zone(1): 1024 pages.

  zone(2): 0 pages.

[1] [2] 下一页


推荐阅读
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 在ubuntu服务器上安装vscode,但是目前使用的方法都无法成功。第一次安装经历:安装完anaconda后有自动安装vscode的选项,输入yes后,没有出现错误,但是在终端输 ... [详细]
author-avatar
往事不可味nd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有