原创 Do you know about embeded system

2008-5-2 09:44 2259 7 7 分类: 软件与OS

 1. 一个嵌入式系统从软件的角度看通常可以分为哪几个层次?试解释之。



在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux

统从软件的角度看通常可以分为四个层次:


1.
引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loade r 两大部分。

2.Linux
内核。特定于嵌入式板子的定制内核以及内核的启动参数。

3.
文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统。通常用 ram d

isk
来作为 root fs

4.
用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会

包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows MiniGUI 等。





2. 
请画出你熟悉的嵌入式系统物理内存映像(Memory Map)并作解释。





3. Linux Kernel
C代码入口函数是什么?试简述其功能。

4. 
列举你熟悉的Gcc编译选项并作解释。

5. a
)下面的代码输出是什么,为什么?

  void foo(void)

  {

  unsigned int a = 6;

  int b = -20;

  (a+b>6)?puts(">6"): puts("<=6");//puts为打印函数

  }

  b)运行下面的函数会有什么结果?为什么?

  void foo(void)

  {

  char string[10],str1[10];

  int i;

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

  {

  str1 [ i ] = 'a'; 

  

  strcpy(string, str1);

  printf("%s",string);

  }



6. 
编写strcpy函数

  已知strcpy函数的原型是

  char *strcpy(char *strDest, const char *strSrc);

  其中strDest是目的字符串,strSrc是源字符串。

  a)不调用C++/C的字符串库函数,请写出函数strcpy

  b)strcpy能把strSrc的内容复制到strDest,为什么还要char* 类型     的返回值?

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条