• 嵌入式开发学习之--创建工程


    提示:本篇文章依旧是了解为主,实际做项目时直接找开源的类似项目做模板更效率。


    一、前言

      前面的学习,都是文件内的代码联系,这一篇,是学习文件与目录的联系。当然你可以依据这些理论创建自己风格的工程,但是我更建议新手的话还是找模板,直接在上面改比较好。


    二、新建工程

      首先得先建立一个文件目录用来存放工程。这不管什么语言什么开发环境都要如此。我们创建一个很不专业的文件目录“点亮红灯”,可以看到这时它还是一个空文件夹。

    在这里插入图片描述

      接着打开keil5,找到new project。

    在这里插入图片描述

      选择我们新建的目录作为新工程的地址。

    在这里插入图片描述

      保存以后会弹出这个界面,是让你选择你的工程所应用的芯片。

    在这里插入图片描述

      找到自己开发应用的芯片型号点ok。

    在这里插入图片描述

      点击ok以后,弹出这个界面,让你添加库文件,不添加直接点ok。

    在这里插入图片描述

      接着一个空空的工程模板就创建好了。

    在这里插入图片描述
      我们打开刚刚创建的空目录,发现里面已经创建了一些东西,这些就是刚刚创建工程时keil自己创建的。先不去管它,我们现在有了工程,那么需要往工程里添加各种文件。先尝试把“点亮led灯上”中用到的三个文件copy到这个里面,看看效果。

    在这里插入图片描述
    在这里插入图片描述
      回到keil界面,显然虽然文件夹里多了几个文件,但是keil工程并不知道,右键Target1,出现如下列表,Add Group可以在工程里创建一个新的目录,Manage Project Items…就可以将我们想要的文件,我们尝试创建一个目录,然后再添加一下文件。

      创建一个新目录

    在这里插入图片描述
      添加文件

    在这里插入图片描述
      选择add files

    在这里插入图片描述

      可以看到目录下只有main.c,那是类型默认了(*.c),改成所有文件ALL files.

    在这里插入图片描述

      目录下所有文件都出来了,选择刚刚丢进去的点灯三件套,挨个add进自己的工程。

    在这里插入图片描述

      可以看到在Source Group 1目录下已经多了三个文件,选择ok。

    在这里插入图片描述
    在这里插入图片描述

      这样工程已经建立好了,接着我们编译一下,然后再打开目录“点亮红灯”中的objects,还有listings,发现里面已经创建了一些文件。显然这两个文件夹就是存储编译过程中生成的一些中间文件的。

    在这里插入图片描述
    在这里插入图片描述
      然后我做了这么个测试,把这两个文件目录删除,再次编译。看看是否会出错,测试结果是没有出错,并且再一次创建了这两个文件目录,然后又把中间文件塞进去了。那我一定要改怎么办,打开keil工程的魔术棒,output可以和listing下都有一个slesct,这就是选择生成文件存储的地址,我选择在object里再创建一个新建文件夹,然后选择编译。

    在这里插入图片描述
      可以看见编译报错了。
    在这里插入图片描述

      我接着将目录的名字改为demo1,再一次进行编译,编译通过。这里有一个重点:不要用中文作为文件、目录的名字。

    在这里插入图片描述

      打开demo1中查看一下,中间文件成功存在这里了。

    在这里插入图片描述

    三、使用模板工程

      打开野火源代码“10-新建工程–固件库版本”,点开object->RVMDK,里面带keil图标的就是启动工程文件。直接在里面创建、添加自己的文件就好了。

    在这里插入图片描述

      各目录规划。

    在这里插入图片描述

      这是正点原子的模板

    在这里插入图片描述
      还有各种开源软件,比如最知名的github,国内的coding,gitee等等,上面都有着很多开源的代码分享,找一个合适的去改编,可以极大提升效率。


    四、总结

      这篇文章只需要了解如何在野火提供的模板上增加、删除自己的文件,再就是一定要记得不要用中文作为文件目录的名字,容易出一些很清怪的问题。下一篇开始写具体实验,总看理论感觉怪怪的,写起来也是怪怪的。

  • 相关阅读:
    pytorch tensorboard
    ant-design-vue 库 Loading 组件封装
    我开源了团队内部基于SpringBoot Web快速开发的API脚手架v1.6.0更新
    LeetCode34-34. 在排序数组中查找元素的第一个和最后一个位置
    [Azure | Active Directory] 如何为VM分配托管标识
    JavaScript中的call、apply 和 bind
    Java String 中换行\r\n不生效
    Vue2.0简介
    从零开始一套完整的短视频运营方案,想做抖音快手短视频的速来观摩。
    带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击
  • 原文地址:https://blog.csdn.net/code_lyb/article/details/127979935