侧边栏壁纸
    • 累计撰写 296 篇文章
    • 累计收到 520 条评论
    嵌入式与应用知识点学习&复习提纲
    我的学记|刘航宇的博客

    嵌入式与应用知识点学习&复习提纲

    刘航宇
    2021-06-09 / 261 评论 / 3,733 阅读 / 正在检测是否收录...

    自己整理的复习提纲

    部分程序讲解

    培养目标1

    1.嵌入式系统分三层:应用、内核、硬件层。ARM为硬件层、驱动内核层。
    2.嵌入式系统与PC的区别
    讲解:嵌入式系统一般指非 pc 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 pc 中 bios 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。
    答案:下面3点缺一不可

    3.嵌入式系统的特点
    1)联网:嵌入式设备支持网络连接,可实现物联。
    2)UI:嵌入式设备更多的采用是自定义的简单UI。

    提示联网和UI必须答,不答0分,少答扣分

    3)包含专用调试电路
    4)具有完整的系统测试和可靠性评估体系

    培养目标2

    4.gcc编译hello.c为hello
    答: gcc hello.c -o hellogcc -o hello hello.c
    5.Linux 删除文件夹命令和CD命令含义
    rmdir 目录 或者“rm -rf /目录”
    cd命令:切换当前目录至其它目录。
    知识点补充:

    6.【判断题】Vi有三种基本工作模式:写程序在文本输入模式。 (对)
    知识点补充:

    培养目标3

    7.int p[n]:数组;int *p[n]指针;
    必考补充:数组指针和指针数组区分:

    培养目标4

    8.文件IO中write返回正确值为:向内核文件fd中写的字节数 参考P84

    培养目标5

    9.程序分析题
    (1)运行时间小于20秒有几个进程?
    (2)什么是僵尸进程?什么孤儿进程,20秒后会产生什么?

    #include "stdio.h"
    #include "stdlib.h"
    int main()
    {
       int i;
       int pid;
       pid = fork();
       if(pid > 0)
       {
           while(1);
       }
       if(pid == 0)
       { 
         for(i=0;i<20;i++)
           {
          printf("我爱刘航宇%d次了\n",i);
          sleep(1);
          }
       }
      return 0;
    }

    答:

    培养目标6

    10.创建有名管道文件函数是: mkfifo

    11.有名管道,管道文件名chat.txt,编写A.c与B.c单向聊天
    (1)B发A收
    (2)程序具备退出功能
    答:本题不要求实现过程可以不写,只写程序,至于过程学习参考本站其它文章
    管道程序:

    #include "stdio.h"
    int main()
    {
       int ret;
       ret = mkfifo("./chat.txt",0777);
       if(ret == -1)
       {
         printf("mkfifo error\n");
         return -1;
       }
       return 0;
    }

    A端程序:(收方!!!)

    #include "stdio.h"
    #include "fcntl.h"
    #include "string.h"
    int main()
    {
       int fd;
       int i;
       char buf[32] = {0};
       fd = open("./chat.txt",O_RDONLY,0777);
       if(fd == -1)
       {
           printf("open error\n");
           return -1;
       }
       //start read
       while(1)
       {
           read(fd,buf,32);
           if(buf[0] == 'q')
           {
              break;
           }
           printf("buf = %s\n",buf);
           for(i = 0 ;i < 32; i++ )
           {
               buf[i] = 0;
           }
       }
       close(fd);
       return 0;
    }

    B端程序(发方):

    培养目标7

    12 socket函数,UDP通信,参数: int type赋值为 SOCK_DGRAM
    13 SOC全称是 System on Chip称为芯片级系统或片上系统
    14 判断:AHB总线下挂接都是高速模块,如LCD控制器、中断控制器等 (×)
    15 判断ARM 公司不生产芯片 (√)
    16 简答:CPU、SOC和嵌入式产品关系:
    三个要点:1 CPU是一台计算机的运算核心和控制核心。(第一句必答,后面可以简写)CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。主要功能是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。2.SOC单片系统或片上系统是一个将电脑或其他电子系统集成到单一芯片的集成电路。(第一句必答,后面可以简写)单片系统可以处理数字信号、模拟信号、混合信号甚至更高频率的信号。单片系统常常应用在嵌入式系统中。单片系统的集成规模很大,一般达到几百万门到几千万门。SoC 可以基于 MCU 或 MPU,并将提供执行某些类型的应用程序所需的一切。
    17.综合题:LED问题(本文推荐用电脑或平板观看,手机可能看不清)
    预测题目:点亮GPF4的LED灯,实现其亮灭,将下面程序3个空区域补充完整。
    (去年题目是点亮GPF4、5、6。看明白下面程序后可以同学自行尝试做一下,不过据说今年考点亮一个)
    平台原理图:

    例图:
    Test
    控制与数据端口

    程序:(可能与部分同学拍的略微不同,但是程序是一个意思,变量我图快方便写换了一部分,不影响,while循环改成for也是一个道理,这个东西很灵活 表情

    //#include "global.h"
    #define  GPFCON    0x56000050
    #define  GPFDAT    0x56000054
    #define  MPLLCON   0x4C000004
    #define  CLKDIVN   0x4C000014
    void init_system_clock()
    {
           int *p;
           p = (int *)CLKDIVN;
           *p = 0x03;            // FCLK:HCLK:PCLK=4:2:1, HDIVN=1,PDIVN=1  
                __asm__
             {
                            mrc    p15, 0, r1, c1, c0, 0      
                            orr    r1, r1, #0xc0000000        
                            mcr    p15, 0, r1, c1, c0, 0     
             }
           p = (int *)MPLLCON;
           *p =  (0x5c<<12)|(0x01<<4)|(0x02);
    }
    void mymain()
    {
          int *p;
          int  i;
          init_system_clock(); //FCLK:HCLK:PCLK=200:100:50MHZ
          (1)------------
          while(1)
            {
                  
    
                (2)------------
                 for(i = 0 ;i < 10000; i ++);
                (3)------------
                 for(i = 0 ;i < 10000; i ++);
            }            
            return ;
    }

    解答:

    培养目标8

    18.rmmod功能:将驱动程序从liunx内核卸载;lsmod:查看内核中存在哪些模块
    19.判断:驱动程序设备号分主设备号和次设备号 (√)
    20.判断:驱动程序和应用程序一样有main函数 (×)

    72
    Linux sleep函数
    « 上一篇 2021-06-10
    奇函数积分是偶函数吗?偶函数积分是奇函数吗?
    下一篇 » 2021-06-09

    评论 (261)

    取消
    1. 头像
      Lairsy
      Windows 10 · Google Chrome

      很棒

      回复
    2. 头像
      262556156@qq.com
      Windows 10 · Google Chrome

      回复
    3. 头像
      a
      Windows X64 · QQ Browser

      回复
    4. 头像
      Windows X64 · QQ Browser

      回复
    5. 头像
      racardo
      Windows 10 · Google Chrome

      thank

      回复
    6. 头像
      shs
      Windows X64 · QQ Browser

      感谢学长分享

      回复
    7. 头像
      嘎嘎嘎
      Windows X64 · QQ Browser

      回复
    8. 头像
      刘航宇的粉丝
      Windows 10 · Google Chrome

      表情

      回复
      1. 头像
        刘航宇 作者
        Windows 10 · Google Chrome
        @ 刘航宇的粉丝

        表情表情表情

        回复
        1. 头像
          xhp
          Android · Google Chrome
          @ 刘航宇

          1

          回复
    9. 头像
      Windows X64 · QQ Browser

      星辰

      回复
    10. 头像
      Windows X64 · QQ Browser

      回复
    11. 头像
      n
      Windows X64 · QQ Browser

      表情

      回复
    12. 头像
      jk
      Windows X64 · QQ Browser

      表情

      回复
    13. 头像
      1
      Android · QQ Browser

      表情

      回复
    14. 头像
      zxz
      Windows X64 · QQ Browser

      哇!

      回复
    15. 头像
      123
      Windows X64 · QQ Browser

      牛啊

      回复