基于IMX6ULL的嵌入式Linux开发学习笔记——(1)总体简述

    你好,这是一则简短的自我介绍,在2020年时曾在本科阶段参与第15届智能车竞赛,当时因准备创意组竞赛而购置了这块IMX6ULL,时隔多年,现在觉得自己需要在嵌入式领域有一定的发展,并且这个因疫情放开而提前开始的寒假需要给自己留下一定的学习记录,故重新开始了嵌入式Linux的学习。

当前学习进度小结——Ubuntu系统的基础使用

2022年12月20日-2023年1月4日
    在这段时间里,跟着正点原子的I.MX6U嵌入式驱动开发指南学习了基于VMware虚拟机下的Ubuntu16.04的Linux系统的简单使用。

(1)常用Shell操作——

  • 查看目录 ls;
  • 切换目录(进入某个文件夹) cd;
  • 显示当前路径 pwd;
  • 补全指令 tab键(Eg. Ifc + tab = ifconfig命令);
  • 创建新文件 touch;
  • 创建新文件夹 mkdir;
  • 软件安装 sudo apt-get install + package_name;
  • 删除文件 rm + 文件名;
  • 删除文件夹 rm + 文件夹名 + -rf;

(2)简单的VIM编辑器的常用快捷键

  • a 切换至模式;
  • esc 结束输入;
  • :wq 保存并退出;

(3)Linux系统下的根目录文件架构

  • /root 超级用户的根目录文件
  • /home 普通用户的目录 (自己的linux文件目录)
  • /dev 设备文件 (在插拔SD卡进行烧录时候常用到/dev/sdb)
  • /etc 系统程序的运行文件
  • /lib 系统程序运行所需库文件
  • /var 不断变化的文件
  • /tmp 临时文件

(4)Linux交叉编译

    Ubuntu自带的GCC编译器针对X86架构,而我们要编译ARM架构代码。
    故需要在X86架构的PC上运行可以编译ARM代码的GCC编译器,叫做交叉编译器。
    在此处可结合Makefile里的代码进行理解,arm-linux-gnueabihf-gcc则是能在linux平台上基于GCC编译器推出的ARM交叉编译工具

(5)arm-linux裸机开发基本思想

    同STM32库函数开发所不同的是,裸机开发对数据手册的读取,对相关寄存器的配置有着更高的要求,以下笔者将在接下来的分章讲述里对其进行说明。
    因Cortex-A7芯片一上电SP指针仍未初始化,C语言环境还没准备好,所以要先用汇编语言设置好C语言环境:

  1. 初始化DDR
  2. 设置SP指针等,设置C语言运行环境
  3. 用汇编初始化一些SOC外设

    故当汇编语言把C语言环境设置好后才可以运行C语言代码。即project文件夹里需要有main.c和start.s这两部分组成。

(6)小结
    在这最开始的一部分,笔者在基于VMware虚拟机的Ubuntu16.04系统下进行了Linux环境基础学习,对常用shell操作,vim编辑器快捷键,linux根目录文件,基于arm-linux-gnueabihf-gcc工具的交叉编译,以及arm-linux裸机开发进行了介绍,并将在之后的几章逐步进行各部分如gpio、clk、led、key、beep等外设进行裸机开发的小结。

你可能感兴趣的:(ARM-Linux学习笔记,linux,学习,驱动开发)