嵌入式入门学习(小菜鸡的学习笔记)
前言
最近开始接触嵌入式,之前也就学过C语言,但是都是是非常基础的一些知识。知识最高峰的时期就是为了过国家计算机二级C 而一通猛学。下面就放入我最近学习笔记的内容。
一、 Linux开发环境的搭建
- 下载VirtualBox软件(win10下载5.2.22,win7下载4.3.12)
VirtualBox官方下载地址
下载Ubuntu系统镜像(ubuntu12.04 LTS desktop-i386.iso )( LTS为稳定更新开发版)
Ubuntu官方下载地址
※ 都保存在一个文件夹里(文件夹自己找位置新建,最好是 英文目录 ) - 安装并运行VirtualBox(默认路径安装即可),新建虚拟机
- 虚拟机 名称:Ubuntu(可自定义);类型:Linux ;版本:Ubuntu64/32
- 设置虚拟内存大小,至少1024 M
- 创建虚拟硬盘,VDI格式,固定大小10G
- 挂载系统镜像,设置 → 存储 → 光盘(再点击光盘图标 )→ 选择要挂载的系统镜像(即下载的VirtualBox软件包)。
- 安装系统,选择简体中文 → 安装Ubuntu → 检查安装条件(不选择安装时更新)并继续 → 清除整个磁盘并安装Ubuntu并继续 → 选择要安装的磁盘,现在安装。※ 安装时一定要断网,不然会很慢
- 开始安装 → Ubuntu → 设置时区(shanghai)→ 设置语言(中文)→ 设置用户名和密码。
- 现在重启 → 按 Enter 键移除安装镜像 → 启动Ubuntu。
- 右上角系统设置 → 软件更新 → 设置 → 有新版本时通知我(从不)ubuntu软件 → 下载自 → 选择163服务器
- 按Ctrl +Alt + t 打开终端 ,执行:
sudo apt-get update
(更新软件源),执行:sudo apt-get upgrade
(更新操作系统) → 选择y (耐心等待)→ 重启。 - 安装功能增强包 → 主窗口菜单中 设备 → 安装增强功能 → 输入密码授权 → 按 Enter 结束 → 关机。
- ※ 在关机状态下 → 设置 → 共享文件夹 → 点击加号 → 选择共享文件目录(注意:文件目录为英文目录) →
勾选自动挂载 → ok。 - 启动系统,不出意外就可以挂载了,但目前没有访问权限,执行:
sudo usermod -aG vboxsf 用户名
(用户名就是你安装时设置的用户名。执行后没有报错/弹出什么问题就行了),然后重启。 - 此时就可以与windows共享目录了,设备 → 共享粘贴板 → 双向
- 设置 → 系统设置 → 语言支持 → 安装完整语言支持,此时输入法就完整了,Ctrl+ 空格就能切换输入法
- 安装搜狗输入法,百度搜狗拼音进入官网 → 选择Linux输入法,下载安装包,按照教程设置系统并安装支持框架 fcitx,找到并双击输入法安装包开始安装,安装完成后重启系统。
- 安装vim编译器 和 gcc编译器 :依次输入如下代码
sudo apt-get install vim
sudo apt-get install g++
配置环境:找到下面图片中
按Ctrl +Alt + t 运行终端
输入vim ~/.bashrc
在文件中寻找alias l='ls -CF'
这行代码并在这行代码下面增加如下代码:
alias gcc='gcc -std=gnu99'
(更新gcc编译器)
alias rm='rm -i'
(rm删除确认)用rm删除的文件无法找回,以防误删需要删除确认
最终结果如图所示:
最后按下Esc
输入:
再输入w+q回车,保存并退出。
至此虚拟机环境基本搭建完毕。
二、 VIM
-
vim 是什么?
vim是可以终端下使用的全键盘操作的文件编辑器,可配置、可扩展、可编程的成长型神器。
基本使用方法:
(1) 进入vim,vim文件名,文件存在则直接打开,不存在则创建,此时只能阅读代码或修改代码,不适合编写代码。
(2) 输入i,进入插入模式,可以正常编写代码
(3) 代码编写完后,按 Ctrl+x执行,按 Enter返回,输入i继续编写
(4) Ctrl+z 保存退出 -
vim的三大模式与切换方法
(1) 正常模式:刚进入时的模式,适合阅读代码、修改代码
(2) 插入模式:适合编写代码
(3) 行底模式:进行配置vim,执行vim相关命令
正常模式 输入i 进入插入模式插入模式 按 Esc 进入正常模式
正常模式 输入: 进入行底模式
行底模式 按Esc或Ctrl+c返回正常模式
插入模式和行底模式之间不能直接转换,必须由正常模式跳转
正常模式:
※光标的移动:
kjhl-------------上下左右移动光标PgUp PgDn---------------上下翻页
home end----------------行首 、行尾
n+Enter---------------------向后跳转n行
n+G--------------------------跳转到第n行
vim file.c +n ------------------进入文件后跳转到第n行
※删除代码:
x ---------------------------------删除一个字
dw 或 de -----------------------删除一个单词
d$--------------------------------删除到行尾
dd--------------------------------删除整行
ndd------------------------------删除n行※复制代码:
yy--------------------------------复制整行
nyy------------------------------复制n行
p---------------------------------粘贴到下一行※替换代码:
r ---------------------------------替换一个字符(光标定位在要替换的字符上,按r,然后输入替换后的字符)
cw / ce-------------------------替换一个单词(把光标定位在要替换的单词首字母,然后按 cw / ce ,单词会被删除并进入插入模式)
R--------------------------------进入替换模式※撤销与反撤销:
u -------------------------------撤销之前的操Ctrl+r --------------------------取消撤销操作
插入模式:
此模式下主要用来编写代码,因此快捷键不多
Ctrl +i -------------------------相当于制表符tab键
Ctrl +p ------------------------代码补全
Ctrl +j -------------------------相当于Enter
Ctrl +c------------------------返回正常模式*行底模式:
执行vim的一些命令
q -------------------------------退出
q!-----------------------------强直退出
w -------------------------------写入
wq -----------------------------保存退出
对vim进行一些配置:
set nu ------------------------显示行号
set nonu ---------------------不显示行号
set ts=4 ----------------------设置tab的宽度
在行底模式下进行此设置都是临时有效,要长时间有效就要把这些命令写入配置文件中, ~/.vimrc
输入vim ~/.vimrc
输入以下代码配置vimrc
set nu "显示行号
syntax on "进行语法检查,颜色显示
set hlsearch "高亮度反白
set bg=dark "显示不同底色色调
set tabstop=4 "设置tab空格数为4
set shiftwidth=4 "设置缩进宽度为4
set cursorline "当前行显示下划线
set noexpandtab "使用空格代替tab,在Makefile中缩进要使用tab
set autowrite "自动保存
set noswapfile "不生成临时文件
set autoindent "自动缩进
set smartindent "智能缩进
"---快捷编译--- 直接按Ctrl+x 就能编译运行了
"1编译函数
func! CompileCode()
"写入文件
exec "w"
"判断文件类型
if &filetype == "cpp"
exec "!g++ % && ./a.out"
elseif &filetype == "c"
exec "!gcc -std=gnu99 % -lm -lpthread && ./a.out"
endif
endfunc
"2映射快捷键
map <C-x> :call CompileCode()<CR>
imap <C-x> <ESC>:call CompileCode()<CR>
vmap <C-x> <ESC>:call CompileCode()<CR>
"---快捷保存退出--- 直接按Ctrl+z 就能保存退出了
"1保存退出函数
func! SaveExit()
exec "wq"
endfunc
"2映射快捷键
map <C-z> :call SaveExit()<CR>
imap <C-z> <ESC>:call SaveExit()<CR>
vmap <C-z> <ESC>:call SaveExit()<CR>
按Ctrl+z 保存退出,恭喜恭喜配置完毕!
大功告成!