- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 Ubuntu 20.04安装交叉编译工具(arm-linux-gnueabi-5.4.0.tar.xz)
一、将交叉编译工具通过共享文件夹共享至Ubuntu上二、将交叉编译工具复制到要存放交叉编译工具的目录下,这里我选择存放在/usr/local/arm下sudo mkdir /usr/local/armsudo cp /mnt/hgfs/share/arm-linux-gnueabi-5.4.0.tar.xz /usr/local/arm/三、解压交叉编译工具压缩包sudo tar -xvf arm-linux-gnueabi-5.4.0.tar.xz 四、找到交叉编译工具的
2022-01-13 12:30:42
4216
原创 Ubuntu 20.04 安装交叉编译工具后报错解决方法error while loading shared libraries: libmpfr.so.4: cannot open shared o
arm-linux-gcc test.c -o test1如果是20.04的ubuntu,可能会报错gec@ubuntu:~$ arm-linux-gcc 11.c -o 11 /home/gec/usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared objec
2022-01-11 11:07:37
1407
原创 带头结点的单链表(管理结构体作为头结点)
#include <stdio.h>#include <stdlib.h>typedef int ElemType_t;//保存数据的结构体typedef struct node { ElemType_t data; struct node *pNext;}Node_t;//链表的头结点结构体typedef struct list{ Node_t * head; Node_t * tail; int nodeNumbe.
2022-01-11 11:04:32
490
原创 将bin文件烧写进IMAX6ULL-ALPHA开发板
STM32烧写到内部FLASH,6ULL支持SD卡、EMMC、NAND、NOR、SPI FLASH等启动。使用SD,在ubuntu下向SD卡烧写裸机bin文件(烧写到SD卡的绝对地址上)对于IMAX不能直接烧写bin文件,必须在bin文件前面添加头部,完成这个工作,需要使用imxdownload软件向SD卡烧写bin文件①将imxdownload复制到ubuntu目录下,并给予可执行权限②使用imxdownload向SD卡烧写led,bin文件./imxdownload <
2022-01-09 22:29:48
613
原创 在ubuntu下将.s汇编源文件编译成.bin
1.编译程序①将.c .s文件变为.o文件arm-linux-gcc leds.s -g -c -o led.o-g:产生调试信息 -c:编译源文件但是不链接②将所有.o文件链接为.elf格式的可执行文件链接就是将所有的.o文件链接在一起,并且链接在指定的地方(指定链接起始地址)链接起始地址就是代码运行的起始地址6ULL的链接地址应该指向RAM,几乎所有的A系列芯片都没有内部FLASH,不能像STM32那样存在ROM中RAM分为内部RAM(0x900000~)和外部RA
2022-01-09 21:43:58
1976
1
原创 IMAX6ULL正点原子学习笔记(led汇编驱动)
参考资料:IMAX6ULL参考手册1.使能时钟参考手册中,第18章,CCGR寄存器负责所有的外设时钟CCGR0的地址为:Address: 20C_4000h base + 68h offset = 20C_4068h2.IO复用,把GPIO1_IO03引脚 复用为GPIO参考手册中,第32章,IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~bit0设置为0101即为GPIO寄存器的地址为:Address: 20E_0000h base + 68h of.
2022-01-09 20:42:12
592
原创 单链表带头节点和不带头节点的区别
单链表带头节点的代码编程实现:带头结点的单链表(插入,删除,逆序)_知识变现的博客-优快云博客单链表不带头节点的代码编程实现不带头结点的单链表(增、删、查、改)_知识变现的博客-优快云博客1.两者在创建过程中并无不同,但是第一个有效结点的创建是通过直接创建或者插入创建会有不同(带头节点的第一个有效结点通过插入的方式创建,不带头节点的第一个有效结点直接创建后使用头指针指向第一个有效结点)2.两者在遍历时,带头节点应该从head->pNext开始遍历,而不带头节点应该从head开始
2022-01-09 17:51:27
1258
原创 不带头结点的单链表(增、删、查、改)
#include <stdio.h>#include <stdlib.h>typedef int ElemType_t;typedef struct Node{ ElemType_t data; struct Node* pNext;}Node_t,*pNode_t;/*函数名: create_list函数参数:data--第一个结点的数据元素的值函数返回值: 返回堆区创建出来的第一个结点首地址函数作用: 创建一个只有一个结点的链表*.
2022-01-09 17:39:53
2476
原创 带头结点的单链表(插入,删除,逆序)
#include <stdio.h>#include <stdlib.h>struct node { int data; struct node *pNext;};/*函数名: createNode函数参数:data--结点的数据元素函数返回值: 返回堆区创建出来的结点首地址函数作用: 创建一个新结点*/struct node* createNode(int data){ struct node *p = (struct nod.
2022-01-08 16:18:44
1790
原创 使用C语言实现简单的状态机(依次输入密码正确开锁)
状态机,在外界激励下,会影响当前的状态。#include <stdio.h>typedef enum { STATE1, STATE2, STATE3, STATE4, STATE5, STATE6, STATE7,}CurrentState;int main(int argc, char **argv){ int num = 0; CurrentState state = STATE1;...
2022-01-08 14:40:12
3988
原创 ubuntu静态库和动态库制作
库文件将源代码编译成二进制文件,封装起来供他人或自己调用,在库文件上只能调用而不能查看库文件的相关内容,达到源代码保密的效果,也防止不小心修改了源代码的问题Linux下库文件分为两类:静态库(.a)和动态库(.so)静态库的制作:1.将.c文件编译成.o文件gcc source.c -o source.o -c或者可简写为gcc -c source.c2.将.o文件编译成.a文件(静态库文件)ar -rc libsource.a source.o-r 将文件插入到库
2022-01-05 12:45:55
826
原创 Ubuntu使用命令安装vmtools(解决每次开机需要重新挂载共享文件夹问题)
1.首先先更新软件列表清单sudo apt update2.安装open-vm-toolssudo apt install open-vm-tools3.安装open-vm-tools-dkms 实现文件夹共享sudo apt install open-vm-tools-dkms4.安装open-vm-tools-desktop 桌面环境实现文件的双向拖拽sudo apt install open-vm-tools-desktop安装完成,添加共享文件夹VMwar
2022-01-04 18:50:35
4277
2
原创 详解如何在STM32上使用4x4矩阵键盘
矩阵键盘的使用在日常生活中非常常见,驱动矩阵键盘其实就是单纯的使用GPIO去获取电平的状态,但如何获取其实有很多方法,常见的方法有轮询和中断,本次介绍一个比较常用的方法,通过定时器轮询来进行读取(采用STM32F103)。首先,设置好定时器,每隔30ms去轮询一次按键,因为人手随手按一下的时间肯定不止30ms,因此每隔30ms轮询一次,是肯定能读到按下的值的。那么定时器的设置方法如下:定时器头文件tim7.h#ifndef _TIM7_H_#define _TIM7_H_#inclu..
2021-11-10 12:19:39
3846
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人