- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 对Makfile文件系统做一个整理
1.Makfile能干啥?Makfile就是一种语言/工具!这玩意就是编译文件用的,不过咋编译得自己写,写好就按你的规则对.c .h文件进行编译。Makefile==MDK/Visio/Keil2.要不要学懂?我认为初学者不必要学懂,会改Makefile里的.c文件获取路径,.h文件获取路径,生成执行文件名即可。如果要学请看4,不学直接3拿走直接改,没问题的BUILD_DIR=build SRC_DIR=beep INC_DIR=include TARGET=beep3.本人的makef
2021-07-27 17:06:43
381
原创 IO操作write()写的文档内不是你设置的buff
write和f_write是一个意思。write是linux系统IO操作char num[4]={'1','2','3','4'}; write(fd, num, 4);int num[4]={1,2,3,4}; write(fd, num, 4);这两个write写完之后fd里是一个东西吗?①fd里是字符第一个元素’1’ 就是ASCII字符的1。所以写入的就是字符1②fd里就不是字符1234,②定义的num是16个字节,一个元素是4个字节.0元素1 == 00000000 0000000
2021-07-21 18:04:15
290
原创 一文教会你,指针常量,常量指针,指针数组,数组指针,指针函数,函数指针。
认认真真看完,教不会你砍我1.这6个玩意可以分为两类。①指针常量,指针数组,指针函数②常量指针,数组指针,函数指针。2.直接上结论,哪个词在后,这玩意就是个啥3.看第一类①指针常量,指针数组,指针函数。常量/数组/函数在后,这三个本质就不是指针。就好比“快乐少年”本质是少年,快乐只是形容词。3.1指针常量:首先他就是个常量!指针是形容词。指针类型的常量,就是这个常量的值得是个地址。就好比 int * a一样,a的值就得是一个int类型的地址。定义为int *const p; //p是个常量,
2021-07-20 16:53:41
323
1
原创 使用Makefile自定义变量的血泪教训
使用?=空赋值 加 ifeq()分支编译,选择gcc编译或arm-gcc编译make 后明明没有输入,但却老是跳转到else。一直找不出问题最后echo“$(ARCH)”发现,本来不赋值ARCH的值为"x86"但是我圈起来的地方有一些空格,所以ARCH的值为"x86 "这bug谁能想到,以后自定义变量后面还是别加注释了,难免会有空格。总结:①ifeq () ifeq和()之间是有空格的②自定义变量 = := ?= +=符号两边可以有空格,数值后不能有③Makefile
2021-07-16 21:08:19
376
1
原创 hello.s:15: 错误: junk at end of line, first unrecognized character valued 0x8 的解决方法
gcc编译报错如下:hello.s: 警告: 文件结束,非行尾;插入新行hello.s:1: 错误: junk at end of line, first unrecognized character valued 0x7fhello.s:1: 错误: junk at end of line, first unrecognized character valued 0x3hello.s:1: 错误: junk at end of line, first unrecognized character
2021-06-29 17:35:29
7266
5
原创 MDK的map信息都是什么意思,这个比较全慢慢看。需结合上一个博客的知识
Component: ARM Compiler 5.05 (build 41) Tool: armlink [4d0eb9]//各个.c文件通过编译器armcc生成.o目标文件 连接器armlink将这些.o文件连接 以下就是连接交叉信息==============================================================================//各个节区(函数)之间的引用,简而言之.c文件的各个函数调用了哪些其他文件的函数Section Cross
2021-06-23 18:13:48
429
原创 linux下GCC编译器对c语言多文件编译
我们知道gcc可以对.c文件进行编译,生成.out/.exe可执行文件。操作指令如下gcc mian.c -o mian但mian.c文件调用了sub的函数,在使用如上方法就会出错。main函数如下#include <stdio.h>#include "A.h"#include "sub.h"int main(int argc, char *argv[]) //argc运行此程序输入的参数个数{ /
2021-06-21 09:38:02
1175
原创 2021-06-03 build_deb.sh 文件是干啥的?(下)
一.先说几点①想要dpkg -i 必须是xxx.deb文件②xxx.deb文件是通过 dpkg -b 文件夹 xxx.deb 构建而来③这个xxx.deb里不仅仅是你的shell程序,还要有DEBAIN文件夹,DEBAIN文件夹里至少要有一个control文件。这是DEBAIN开发者规定的。(安装一个程序肯定要有信息吧?)二.DEBIAN文件夹构建方法:有两种1.直接在Delires文件夹里建个文件夹,再建个chntrol.txt文件就行了mkdir DEBIAN/vim DEBIAN/c
2021-06-03 09:44:17
466
原创 0.6LINUX下安装一个deb二进制程序(中)代码实操
./xxx.shell也能执行这个shell脚本,但是这样缺少几样东西①./xxx.shell 不能像git echo命令这样直接运行,必须索引路径②这样只能算脚本,不能算一个可执行二进制程序。他缺少基本的control文件preinst文件 :等③真正的一个程序应该具备以上信息,还得有安装,卸载,版本信息等各个环节。因此需要dpkg这个玩意mkdir -p Delires/usr/binnomax@nomax-virtual-machine:~/桌面/deb_dpkg_study$ vim De
2021-06-02 21:53:55
150
原创 0.6LINUX下安装一个deb二进制程序(上)此篇是一些概念
Linux软件包分为两大类:源码包 和 二进制包源码包 //源代码程序,开发者按着一定的格式和语法编写出来的,使用时要用GCC编译成二进制执行优点:开源免费自由裁剪功能修改源代码缺点:安装步骤繁琐 //因为要使用编译器将源码编译成二进制文件,3M软件在linux下安装都得半个小时编译时间长新手无法解决编译问题二进制包 //因为源码包的缺点,安装慢不适合新手,提出了二进制包。 //二进制包 就是 源码包编译后
2021-06-02 21:12:44
359
原创 linux环境变量概念
第十六讲 linux环境变量linux为什么需要环境变量?①首先LINXU是一个多任务多用户的操作系统(老板员工开发者公用一个系统),因此每个人需要的权限和环境变量都是不一样的②所以只有通过shell配置文件,给不同的用户配置不同的环境变量才能满足需求③环境变量 是 shell变量 的其中一种如何让 当前shell的子进程 和 其他shell访问变量访问同一个变量全局变量VS环境变量1.直接定义变量(全局变量) //在shell中直接定义: a=5, b=18; ①这种
2021-06-01 22:20:51
276
原创 MATLB实现滑动窗口滤波
%% 一,区域1%1.得到数据 500x3R_mag=importdata('+MAG_Z.txt');R_mag = R_mag(1:500); %截取矩阵500x3Time = 1:500;after_R_mag = zeros(500,1);av_10 =0;%% 滑动窗口滤波 %ave = mean(R_mag(:));L = length(R_mag); %数组长度值N=10; .
2021-05-18 16:38:09
461
原创 IIC/SPI/串口TTL/232/485/FSMC:模式1 SRAM/模式A 8088液晶屏)/ CAN各种通讯协议比较
此文只是初期科普文章,具体还要自己翻阅通讯协议,经供参考。
2021-04-08 09:32:03
927
原创 CAN通讯 CAN_FilterInit()变量结构体的含义
主要是这四个比较绕ID过滤 和 淹没掩码过滤 16位 和3 32位都表示的意思有所不同,这里把不同模式和不同位数下这四个成员都代表啥意思在注释列出来 供大家参考
2021-04-03 19:06:00
1045
原创 STM32库函数是什么意思呢?和寄存器有什么联系呢(下)?
1.我们继续打开这个函数,看看第二个变量我们发现这第二个变量的的结构体里是这个东西,刚好事一个基本的配置GPIO所需要的变量。uint16_t GPIO_Pin; //无符号型16位变量 代表引脚号GPIOSpeed_TypeDef GPIO_Speed;//结构体类型 代表速度GPIOMode_TypeDef GPIO_Mode; ////结构体类型 代表引脚模式2.继续打开第二个变量结构体里的枚举类型(看他们如何赋值)①这是GPIO_Pin的赋值选择②这是GPIO_Spe
2021-04-02 20:54:07
790
原创 STM32库函数是什么意思呢?和寄存器有什么联系呢(上)?
**STM32库函数是什么意思呢?和寄存器有什么联系呢(上)?**1.首先我们打开任意一个Init()函数,这里以GPIO为例void GPIO_Init(GPIO_TypeDef GPIOx, GPIO_InitTypeDef GPIO_InitStruct);**2.索引到第一个变量GPIO_TypeDef GPIOx*2.1我们查看GPIOx可选的赋值情况2.2继续索引看这些值代表什么,以GPIOA为例它是一个将一个GPIOA_BASE定义成了GPIO_TypeDef 类型的结构体
2021-04-01 12:05:09
936
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅