![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 54
Linux
lljss2020
这个作者很懒,什么都没留下…
展开
-
gcc编译demo+Makefile使用
一、gcc编译demo//main.c#include <stdio.h>#include "input.h" #include "calcu.h" int main(int argc, char *argv[]) { int a, b, num; input_int(&a, &b); num = calcu(a, b); printf("%d + %d = %d\r\n", a, b, num); }//calcu.c#include "ca原创 2022-05-31 09:16:24 · 425 阅读 · 0 评论 -
33. 定时器按键消抖实验
一、定时器按键消抖简介当按键按下以后,进入到中断服务函数中,开始一个定时器,定时周期位10ms,只有最后一个抖动信号开启的定时器才能完成的执行完一个周期。当定时器产生周期中断以后就在中断服务函数里面做具体的处理,比如开关蜂鸣器。二、实验原理简介三、实验程序编写//bsp_epitimer.c#include "bsp_epittimer.h"#include "bsp_int.h"#include "bsp_led.h"/* * @description : 初始化EPIT定时器.原创 2021-03-23 22:27:54 · 1066 阅读 · 0 评论 -
32. EPIT定时器实验
一、EPIT简介1、EPIT是32位的一个向下计数器。2、EPIT的时钟源可以选择,我们选择ipg_clk=66MHz。3、可以对时钟源进行分频,12位的分频器,04095分别代表14096分频。4、开启定时器以后,计数寄存器会每个时钟减1,如果和比较寄存器里面的值相等的话就会触发中断。EPIT有两种工作模式:Set-add-forget,一个是free-runing5、6ULL有两个EPIT定时器。EPIT_CR寄存器用于配置EPIT。二、实验原理简介EPIT_CR bit0为1,设置原创 2021-03-23 22:25:19 · 329 阅读 · 0 评论 -
31. GPIO中断实验
一、回顾STM32中断系统1、STM32中断向量表ARM芯片从0X00000000开始运行,执行指令。在程序开始的地方存放着中断向量表。中断向量表主要功能是描述中断对应的中断服务函数。对于STM32来说代码最开始的地址存放堆栈栈顶指针。2、中断向量偏移一般ARM从0X000000000地址开始运行,对于STM32我们设置连接首地址为0X8000000。如果代码一定要从0X8000000开始运行,那么需要告诉一下soc内核。也就是设置中断向量偏移。设置SCB的VTOR寄存器为新的中断向量表起始地址原创 2021-03-23 22:22:45 · 1229 阅读 · 0 评论 -
30. 主频和时钟配置实验
一、硬件原理图分析1、32.768khz的晶振,共给RTC使用。2、在6U的T16和T17这两个IO上接了一个24MHz的晶振。二、I.MX6U系统时钟分析1、7路PLL为了方便生成时钟,6从24MHz晶振生出来7路PLL。这7路PLL中有的又生出来PFD。PLL1:ARM PLL供给ARM内核。PLL2:sysytem PLL,528MHz,528_PLL,此路PLL分出了4路PFD,分别为PLL2_PFD0~PFD3PLL3: USB1 PLL,480MHz 480_PLL,此路PLL分原创 2021-03-23 22:15:42 · 415 阅读 · 0 评论 -
虚拟机ubuntu下ls 识别不出sd*形式
在ubuntu图形界面下可以识别SD卡,但使用ls /dev/sd* 识别不出SD卡。1.使用tf转SD卡套,接在笔记本的SD卡槽中,识别成/dev/mmcblk0p12. 使用tf转usb读卡器后,可以识别成sd*形式原创 2021-03-21 11:25:50 · 654 阅读 · 0 评论 -
29. 按键输入实验
一、硬件原理图分析按键KEY0链接到了UART1_CTS引脚上。默认情况下UART1_CTS为高,当按下KEY0以后UART1_CTS为低。二、实验程序编写1、设置UART1_CTS复用为GPIO1_IO182、设置UART1_CTS的电气属性。3、配置GPIO1_IO08为输入模式。4、读取按键值,也就是GPIO1_IO08的高低电平三、加上清除BSS段,代码不运 行__bss_start = 0X87800289。对于32位的SOC来说,一般访问是4字节访问的。0X0,0X4,0X8,0原创 2021-03-15 20:55:58 · 348 阅读 · 0 评论 -
28. BSP工程管理实验
一、BSP工程管理原理BSP工程管理的目的就是为了模块化整理代码,同一个属性的文件存放在同一个目录里面。1、新建所需的文件夹,将同一属性的文件放到相应的文件夹中。2、修改clk、led、delay驱动,创建对应的驱动文件,然后放置到对应的目录中。3、根据编写的新驱动文件,修改main.c文件内容。设置VSCODE头文件路径。先创建.vscode目录,CTRL+SHIFT+P>C/C++:EDIT然后打开c/c++配置器,会在.vscode目录下生成一个叫做c_cpp_properti原创 2021-03-15 20:53:32 · 462 阅读 · 0 评论 -
27. NXP官方SDK使用实验
1、安装I.MX6ULL SDK包SDK_2.2_MCIM6ULL_RFP_Win.exe2、新建cc.h文件SDK包里面会用到很多数据类型,所以我们需要在cc.h里面定义一些常用的数据类型。3、移植文件nxp\SDK_2.2_MCIM6ULL\devices\MCIMX6Y2需要移植的文件fsl_common.h、fsl_iomuxc.h、MCIMX6Y2.h。设备为MCIMX6Y24、实际代码//main.c#include "fsl_common.h"#include "fsl_i原创 2021-03-15 20:51:38 · 1859 阅读 · 0 评论 -
26. 模仿STM32驱动开发实验
一、STM32寄存器结构体详解对于STM32而言,使用一个结构体将一个外设的所有寄存器都放到一起。二、修改驱动1、添加清除bss段代码2、添加寄存器结构体在结构体中添加寄存器的时候一定要注意地址的连续性,如果不连续的话要添加占位。3、修改驱动//main.c#include "imx6ul.h"/* * @description : 使能I.MX6U所有外设时钟 * @param : 无 * @return : 无 */void clk_enab原创 2021-03-15 20:50:10 · 189 阅读 · 0 评论 -
25. C语言版本LED驱动实验
一、C语言运行环境构建1.1、设置处理器模式设置6ULL处于SVC模式 下。设置CPSR寄存器的bit4-0,也就是M[4:0]为10011=0X13。读写状态寄存器需要用到MRS和MSR指令。MRS将CPSR寄存器数据读出到通用寄存器里面,MSR指令将通用寄存器的值写入到CPSR寄存器里面去。MRS R0, CPSR @将特殊寄存器 CPSR 里面的数据传递给 R0,即 R0=CPSRbic r0, r0, #0x1f /* 将 r0 的低 5 位清零,也就是 cpsr 的 M0~M4 */原创 2021-03-07 10:41:15 · 207 阅读 · 0 评论 -
24. IMX启动方式
一、硬件启动方式选择1、启动方式的选择LED灯实验,是从SD卡读取bin文件并启动,说明6UL支持从SD卡启动。6ULL支持多种启动方式。6ULL是怎么支持从多种外置flash启动程序的。(1)、启动方式选择BOOT_MODE0和BOOT_MODE1,这两个是两个IO来控制的。选择从USB启动还是内部BOOT启动。如果要烧写系统到开发板中可以选择从USB下载,下载到SD卡,EMMC、NADN等外置存储中。烧写完成设置从内部BOOT启动,然后从相应的外置存储中启动。(2)、选择启动设备2、启动设原创 2021-03-07 10:36:37 · 523 阅读 · 0 评论 -
22. 汇编LED驱动实验
一、汇编LED原理分析为什么要学习Cortex-A汇编:①、需要用汇编初始化一些SOC外设。②、使用汇编初始化DDR,I.MX6U不需要。③、设置sp指针,一般指向DDR,设置好C语言运行环境。1、·ALPHA开发板LED灯硬件原理分析:STM32 IO初始化流程:①、使能GPIO时钟。②、设置IO复用,将其复用为GPIO③、配置GPIO的电气属性。④、使用GPIO,输出高/低电平。I.MX6ULL IO初始化:①、使能时钟,CCGR0CCGR6这7个寄存器控制着6ULL所有外设时钟原创 2021-03-07 10:33:25 · 330 阅读 · 0 评论 -
22. VSCode软件安装
VSCode 支持多种语言,比如 C/C++、Python、C#等等,本教程我们主要用来编写 C/C++程 序的,所以需要安装 C/C++的扩展包,扩展包安装很简单,我们需要按照的插件有下面几个:1)、C/C++,这个肯定是必须的。2)、C/C++ Snippets,即 C/C++重用代码块。3)、C/C++ Advanced Lint,即 C/C++静态检测 。4)、Code Runner,即代码运行。5)、Include AutoComplete,即自动头文件包含。6)、Rainbow B原创 2021-03-07 10:27:20 · 167 阅读 · 0 评论 -
21. Ubuntu 交叉编译工具链安装
交叉编译器安装 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译 器,我们在第三章“Linux C 编程入门”里面已经讲解了如何在 Liux 进行 C 语言开发,里面使 用 GCC 编译器进行代码编译,但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在 要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架 构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就原创 2021-03-07 10:25:45 · 569 阅读 · 1 评论 -
20. Ubuntu 和 Windows 文件互传
开启 Ubuntu 下的 FTP 服务打开 Ubuntu 的终端窗口,然后执行如下命令来安装 FTP 服务:sudo apt-get install vsftpdsudo vi /etc/vsftpd.conf 打开以后 vsftpd.conf 文件以后找到如下两行:local_enable=YES write_enable=YES修改完 vsftpd.conf 以后保存退出,使用如下命令重启 FTP 服务:sudo /etc/init.d/vsftpd restartWind.原创 2021-03-06 14:22:37 · 665 阅读 · 0 评论 -
14. shell脚本条件判断、函数和循环
一、shell脚本条件判断shell脚本支持条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了。shell脚本提供了if then条件判断语句,写法if 条件判断 ; then //判断成立要做的事情fi还有if then else 语句,写法if 条件判断 ; then //条件判断成立要做的事情else //条件判断不成立要做的事情。fi或:if 条件判断 ; then //条件判断成立要做的事情elif [条件原创 2021-03-06 10:19:40 · 230 阅读 · 0 评论 -
13. shell脚本入门
一、什么是shell脚本我们已经能够熟练的在终端中输入命令来完成一些常用的操作,但是我们都是一条一条输入命令。这样会很麻烦,那么有没有一种方式可以将很多条命令放到一个文件里面,然后直接运行这个文件即可?肯定有,这个就是shell脚本!shell脚本类似windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件。shell脚本提供数组、循环、条件判断的等功能。shell脚本一般是Linux运维或者系统管理员要掌握的,作为嵌入式开发人员,只需要掌握shell脚本最基础的部分即可。二、sh原创 2021-03-06 10:15:55 · 826 阅读 · 0 评论 -
12. Makefile基本语法
Make 的执行过程:1、make 命令会在当前目录下查找以 Makefile(makefile 其实也可以)命名的文件。2、当找到 Makefile 文件以后就会按照 Makefile 中定义的规则去编译生成最终的目标文件。3、当发现目标文件不存在,或者目标所依赖的文件比目标文件新(也就是最后修改时间比 目标文件晚)的话就会执行后面的命令来更新目标。 这就是 make 的执行过程,make 工具就是在 Makefile 中一层一层的查找依赖关系,并执行 相应的命令。编译出最终的可执行文件。Makef原创 2021-03-06 10:09:38 · 1202 阅读 · 0 评论 -
11. Linux C下使用Vim编程及Makefile引入
1、编写C程序使用VIM编辑器编写程序,也可以使用vscode、eclipse。1.1、设置vim编辑器设置vim编辑器,一个TAB=4个字节。设置vim编译器,显示行号。在使用vim时,当我们以普通用户去打开一个只有root用户才有权限操作的文件时,我们编辑完成之后,正要保存,却发现,这个文件我们没有权限修改。每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法保存,就只能放弃,然后退出,再以root权限打开,重新编辑。解决方案:底行命令模式执行::w !sudo tee %原创 2021-03-06 10:04:49 · 391 阅读 · 0 评论 -
10. vim编辑器
一、vim编辑器Linux系统都会自带vi编辑器,但是vi编辑器太难用了!所以建议大家安装vim编辑器,安装命令:sudo apt-get install vim二、vim编辑器三种工作模式vi xxx 使用vi编辑器打开文件。一般模式(指令模式):默认模式,用vi打开一个软件以后自动进入到此模式。编辑模式:一般模式中无法编辑文件,要编辑文件就要进入编辑模式,按下“i、I、a、A、o、O、s、r”等就会进入到编辑模式。一般按下“a”进入编辑模式。按下ESC键可退出编辑模式。命令行模式(底行原创 2021-03-06 09:59:59 · 109 阅读 · 0 评论 -
09. Linux连接文件
一、Linux连接文件Linux有两种连接文件:符号连接(软连接)和硬链接,符号链接类似Windows下的快捷方式。硬链接通过文件系统的inode连接来产生新文件名,而不是产生新文件。inode:记录文件属性,一个文件一个inode。inode相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容。二、ln命令ln命令用于创建连接文件:ln [选项] 源文件 目标文件选项:-s 创建符号链接(软连接)-f 强制创建连接文件,如果目标存在,那么先删除掉目标文件,然后再建立连接文原创 2021-03-06 09:56:58 · 129 阅读 · 0 评论 -
08. Ubuntu文件权限管理
一、Ubuntu/Linux文件权限文件权限是指不同的用户或用户组对某个文件拥有的权限,文件的权限分为三种:r:读w:写x:可执行。文件描述形式如下:-rw-rw-r—就是文件权限,第一位表示文件类型,剩下的每三位表示一组权限。分别对应拥有者权限、拥有者所在组权限、其他用户权限。可以使用二进制表示文件权限。r=4w=2x=1a文件信息:rwxr-xr-x,a所属用户拥有读写权限可执行权限(755)。组内其他用户拥有读权限无写、可执行权限,其他用户同组内其他用户。二、Ubu原创 2021-03-06 09:25:01 · 97 阅读 · 0 评论 -
07. Ubuntu用户与用户组
一、Linux用户Linux是一个多用户操作系统,不同的用户拥有不同的权限。可以查看和操作不同的文件。 Ubuntu有三种用户:1、初次创建的用户。2、root用户3、普通用户。初次创建的用户权限比普通用户多,但是没有root用户多,初次创建的用户可以创建普通用户。Linux用户记录在/etc/passwd这个文件内。Linux用户密码记录在/etc/shadow这个文件内。每个用户都有一个ID,叫做UID。二、Linux用户组为了方便管理,将用户进行分组。这样就可以设置非本组人员不能原创 2021-02-25 22:43:13 · 361 阅读 · 0 评论 -
06. Ubuntu下压缩与解压缩
1.gzip 压缩工具gzip a.c //a.c压缩成a.c.gzgzip -d a.c.gz //a.c.gz解压至a.cgzip -r test1 //把test1中的文件挨个压缩,但不会把test1文件夹打包gzip -rd test1 //把test1中.gz文件都解压缩 2.bzip2 压缩工具bzip2 -z a.c //把a.c压缩成a.c.bz2bzip2 -d a.c.bz2 //把a.c.bz2解压成a.c3.tar 打包工具tar工具参数:-f,使原创 2021-02-25 22:40:56 · 143 阅读 · 0 评论 -
05. windows下使用U盘工具把多个分区合并为一个分区
打开SDFormatter(内存卡修复工具).exe把K盘格式化,就可以把3个分区合并为一个了。原创 2021-02-25 22:38:08 · 954 阅读 · 0 评论 -
04. ubuntu磁盘管理
1.FAT32的U盘sdb是U盘,sdb4是U盘的第一个分区2. dfLinux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。du:评估文件系统的磁盘使用量,主要查看单个文件的大小。3.磁盘挂载与卸载,分区和格式化卸载sudo umount /media/ll/ESD-ISD -f //-f 强制卸载挂载sudo mount -o iocharset=utf8 /dev/sdb4 /media/ll/udisk //中原创 2021-02-25 22:36:57 · 478 阅读 · 0 评论 -
03. ubuntu下安装软件
1. App-Store2. APTsudo apt install gitsudo apt install makesudo apt install gccsudo apt install fdisksudo apt install vimsudo apt install rarsudo apt install gnome-system-tools //图形化界面创建用户和用户组sudo apt install vsftpd //FTP 服务sudo apt install nf原创 2021-02-25 22:31:18 · 139 阅读 · 0 评论 -
02. Ubuntu终端操作与Shell命令
Ubuntu终端操作与Shell命令ls //目录信息查看lsls -a //显示目录所有文件及文件夹,包括隐藏文件,比如以.开头的ls -l //显示权限等详细信息sudo //切换用户sudo su //切换到root用户sudo su mike //切换到个人用户touchtouch a.c //创建a.ccpcp a.c b.c //复制a.c 到b.c5.rm //删除文件、目录rm .c //删除.crm mike -r原创 2021-02-25 22:29:09 · 401 阅读 · 0 评论 -
01. VMware Workstation Pro 中安装ubuntu18.04.3
虚拟机中网络连接改为有线连接,确保在windows中开启VMnet1、VMnet8Ubuntu中设置如下3.这样就可以上网了设置软件下载源设置USB默认在主机识别编辑–首选项–USBUbuntu兼容USB3.0原创 2021-02-25 22:25:29 · 151 阅读 · 0 评论