摘要:
target := exe source_code = hello.c OBJS = $(source_code:.c=.o) $(target):$(OBJS) gcc $^ -o $@ clean: $(RM) $(target) $(OBJS) 一上来直接展示一份makefile代码。 功能: 阅读全文
摘要:
makefile代码: 测试过程: root@ubuntu:~/Makefile_Test/5make_test# ./hello-makefile.out hello world main.c: a = 0 root@ubuntu:~/Makefile_Test/5make_test# 源码: 阅读全文
摘要:
<一>编译本地的源文件 + 变量的模式替换 实验代码 root@ubuntu:~/Makefile_Test/5make_test# vim makefile 测试: root@ubuntu:~/Makefile_Test/5make_test# make make: 'func1.o' is up 阅读全文
摘要:
代码简单,但测试花样多,若能回答对本博客的每个步骤的预期结果,可以说对makefile的基础掌握是扎实的。 一,当前的makefile代码 root@ubuntu:~/Makefile_Test# root@ubuntu:~/Makefile_Test# root@ubuntu:~/Makefile 阅读全文
摘要:
使用软件: 通信猫 请自行下载 使用平台: win7 360浏览器 当前PC连接的是无线网,所以第2步查看的是 无线局域网适配器上的IP地址。 本实验的逻辑: 浏览器作为http客户端,来访问我通信猫软件上开启的tcp服务器, 当浏览器的网址栏按下回车,就会发起一次GET请求,下图5显示出了tcp服 阅读全文
摘要:
(一) rebuild build clean的实现 新知识点: 当一个目标的依赖是一个伪目标时,这个伪目标的规则一定会被执行。 贴实验代码 好了,现在不看这里的代码,自己实现一遍吧。 实操起来,发现不会?那肯定是对这里的代码没有嚼烂。 我们一起再来反复读读,做到彻底理解,力争能够一句话总结其中的道 阅读全文
摘要:
使用伪目标的优势解读: 如果不使用伪目标,且本地存在名为“clean”文件名的文件,那么将不能执行clean目标下的命令。 1. make的基本原则:A make软件认为目标总是对应文件的。 B 如果一个目标对应的依赖为空,将被视无需检查任何依赖是否更新。 如果此时不存在该目标同名的文件,那么mak 阅读全文
摘要:
请根据IP地址 和 子网掩码,计算出 网络地址、广播地址 IP地址分类 对3类主要IP地址的补充说明: 阅读全文
摘要:
libmodbus在线文档 https://www.jianshu.com/p/d93c17485c0a 原创篇 参考上一篇转载的博客,我的ubuntu上的最终生成的动态库的路径,下图所示 我的linux板子上( 权限最好 777): 我的ubuntu主机上的C语言源代码的路径,四个头文件modbu 阅读全文
摘要:
先转载一片文章先,主要是参考了其搭建环境的部分: https://blog.csdn.net/qq_40452910/article/details/88560310 你可以直接看本文,本文经过更好地整理、实操、记录。 一、源码下载 1、libmodbus官网 https://libmodbus.o 阅读全文
摘要:
故意使用free掉的内存的一个实验 考虑一下两种声明 // 第二种使用的是char*指针,*home的值储存在常量区// 以第二种声明详细实验 小结: 搞清楚哪些存在栈上,哪些存在常量区,这样在结合malloc free使用的时候,心里更加有底。 阅读全文
摘要:
1 源码 #include <stdio.h> #include <stdlib.h> // 编译环境 gcc int main(void) { printf("******** free test ********** \n"); printf("sizeof(uint) = %ld \n", s 阅读全文
摘要:
http://www.fileformat.info/tool/hash.htm?hex=313233343536 这是在线工具地址 加密算法,又称为消息摘要。加密算法一般是任意长度的输入串,固定长度的输出串(一般至少128位),具有单向性,不可以逆推。能够逆推的,那是压缩解压技术了,我们从日常生活 阅读全文
摘要:
我: make不需要编译器?没有arm-linux-make之类的东西? uboot里面也有shell脚本,没有arm-linux-shell之类的东西? 平台通用? 五号:make只是一个脚本工具.gcc与clang才是编译器.我们使用脚本,调用编译器.进行编译。 我对makefile和shell 阅读全文
摘要:
十六进制查看文件 ls 命令 cp chmod 阅读全文
摘要:
转载自 https://blog.csdn.net/euxnijuoh/article/details/81638676 阅读全文
摘要:
注释:这是19年初的博客,写得很一般,理解不到位也不全面。19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻。有时间时再整理上传。 使用SPI设备驱动框架操作max32865读取PT100的例子程序: #include "board.h" #include "drv_sp 阅读全文
摘要:
阅读全文
摘要:
参考下图stm32l475的参考手册: MSP指向地址基地址为0x20000000的内存处。参考STM32L475的memory map可知MSP指向的是SRAM的一块地址。并且由上面的编译信息可知,偏移量是0x480, 正好等于 RW-data + ZI-data 的值。 参考下图的内存模型: 可 阅读全文
摘要:
(1) 类模板 体验 template <typename T1, typename T2>class Test //原始的类模板后 加上class Test<T1, T2>会报错{public: void add(T1 a, T1 b) { cout << "void add(T1 a, T1 b 阅读全文
摘要:
后记: 之前,我把SPI的片选在Cubemx中配置成了SPI_NSS。现在我给它改为了GPIO_OUTPUT. 同时参考了别人的类似的一个操作无线模块(采用SPI设备驱动)的例子程序(清楚了RTT的系统API的调用流程)。年初第一天上班,有空回过头来看这个问题,就成功解决了。 Sx1278.h #i 阅读全文
摘要:
// RT-Thread对象模型采用结构封装中使用指针的形式达到面向对象中多态的效果,例如: // 抽象父类 #include <stdio.h> #include <assert.h> struct parent { int a; //反映不同类别属性的方法 void (*vfunc)(int a 阅读全文
摘要:
–赋值兼容原则(派生类对象是基类对象,反之不成立)–基类指针强制转换成派生类指针–派生类中重定义基类成员(同名覆盖) 假设, 一个基类 "普通人", 一个派生类 "超人". 1) 赋值兼容原则(派生类对象是基类对象,反之不成立) 超人是人吧, 但不是每个人都是超人.现在我要找一个普通人来干活. Ma 阅读全文
摘要:
C++标准库的内容分为10类: C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串 C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化; 下面分类详解: C1 标准库中与语言支持功能相关的头文件 头文件 描述 定义宏NULL和offsetof,以及其他标 阅读全文