
自己的小笔记
宁静以致墨
慢下来,享受技术,找一个安静的位置
展开
-
\r \n 和strcat 笔记
\r:回车,ASCII码13 r->return\n:换行,ASCII码10 n->newline在Windows中:'\r' 回车,回到当前行的行首,而不会换到下一行;'\n' 换行,换到当前位置的下一行,而不会回到行首;描述C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。声明下面是 strcat() 函数的声明。char *s...原创 2021-02-23 08:15:04 · 620 阅读 · 0 评论 -
深入理解计算机系统-----读书笔记2
一个x86-64的中央处理单元(CPU)包含一组16个存储64位值得通用目的寄存器。这些寄存器用来存储整数数据和指针。long exchange(long *xp, long y){ long x = *xp; *xp = y; return x;}像x这样的局部变量通常是保存在寄存器中,而不是内存中。访问寄存器比访问内存要快得多。指令类ADD由四条加法指令组成:addb、addw、addl、addq,分别是字节加法、字加法、双字加法和四字加法。long s...原创 2020-08-26 13:22:55 · 273 阅读 · 0 评论 -
深入理解计算机系统---读书笔记1
文件就是字节序列,仅此而已。系统中的所有输入都是通过使用一小组称为Unix I/O的系统函数调用读写文件来实现的。Amdaha定律(Amdahl's law)该定律的主要思想是,当我们对系统的某个部分加速时,其对系统性能的影响取决于该部分的重要性和加速程度。虽然我们对系统的一个主要部分做出了重大改进,但是获得的系统加速比却明显小于这部分的加速比。这就是Amdahl定律的主要观点-----要想显著加速整个系统,必须提升全系统中相当大的部分的速度。当构建一个由单操作系统内核控制的多处理器组成原创 2020-08-20 09:55:15 · 204 阅读 · 0 评论 -
2020-08-18深入理解计算机系统---读书笔记0
#include <stdio.h>int main(){ printf("hello, world\n"); return 0;}\n 换行符"hello,world/n" 开始时在磁盘上,然后被复制到主存,最后从主存上复制到显示设备。从程序员的角度来看,这些复制就是开销,减慢了程序“真正”的工作。因此,系统设计者的一个主要目标就是使这些复制操作尽可能快地完成。意识到高速缓存存储器存在的应用程序员能够利用高速缓存将程序的性能提高一个数量级。在处理...原创 2020-08-18 22:46:19 · 176 阅读 · 0 评论 -
NTC温度的检测
1、温度与NTC阻值是厂家手册上的。电压 = (电压*NTC阻值)/(外围电阻+NTC阻值) MCU电压 3.3 外围电阻 100 温度 NTC阻值(kohm) 电压 -5 33.8922 0.835330662 -4 32.4197 0.80792367 ...原创 2020-03-18 17:09:09 · 2883 阅读 · 0 评论 -
学习FreeRTOS的延时和系统时间
FreeRTOS提供了两个系统延时函数:相对延时函数vTaskDelay()和绝对延时函数vTaskDelayUntil()。相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束;绝对延时是指每隔指定的时间,执行一次调用vTaskDelayUntil()函数的任务。换句话说:任务以固定的频率执行。由于变量xTickCount可能会溢出,所以程序必须检测各...原创 2020-01-15 16:01:29 · 1939 阅读 · 0 评论 -
FreeRTOS学习笔记
1、xTaskCreate(vTask_A,”Task A”,120,NULL,1,&xHandle);这里创建了一个任务,任务优先级为1,由于硬件平台是32为架构,所以指定了120*4=480字节的任务堆栈,向任务函数vTask_A()传递的参数为空(NULL),任务句柄由变量xHandle保存。2、Cortex-M3中断优先级数值越大,表示优先级越低。而FreeRTOS的任务优...原创 2020-01-10 19:46:36 · 437 阅读 · 0 评论 -
GD安装了pack却发现不了设备
安装了如下:GigaDevice.GD32F30x_DFP.2.0.0.pack然而却找不到设备原因是建立的工程是keil4,使用的keil是keil5的软件。需要修改后缀,添加xProject.uvproj - >Project.uvprojx解决Debug 选择CMSIS-DAP Debugger。...原创 2019-06-24 11:11:28 · 2600 阅读 · 7 评论 -
C的静态库
符号和符号表C程序员使用static属性隐藏块内部的变量和函数声明,就像你在java和C++中使用public和private声明一样。每个可重定位目标模块m都有一个符号表,它包含m定义和引用的符号的信息。在连接器的上下文中,有三种不同的符号:1)由模块m定义并能被其他模块引用的全局符号。2)由其他模块定义并被模块m引用的全局符号。3)只被模块m定义和应用的局部符号。static...原创 2019-06-18 17:13:51 · 419 阅读 · 0 评论 -
深入理解计算机系统(一)
shell是一个命令行解释器,它输出一个提示符,等待输入一个命令行,然后执行这个命令。处理器的核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器(PC)。CPU在指令的要求下可能会执行这些操作:加载存储操作跳转hello程序的机器指令最初是存放在磁盘上,当程序加载时,他们被复制到主存;当处理器运行程序时,指令又被从主存复制到处理器。处理器从寄存器文件中读数据比从...原创 2019-06-12 09:34:20 · 150 阅读 · 0 评论 -
编译的目标文件解析
.data和.bss节之间区别的简单方法是把“bss”看成是“更好节省空间(Better Save Space)”缩写。.bss 块储存开始(Block Storage Start)夹在ELF头和节头部之间的都是节。一个典型的ELF可重定位目标文件包含下面几个节:.text: 已编译程序的 机器代码。.rodata: 只读数据,比如printf语句中的格式串和开关语句的跳转表。...原创 2019-06-17 09:37:29 · 350 阅读 · 0 评论 -
linux 之shell 脚本(一)
通配符说起命令行下省事的办法,还有个东西不能不提,就是通配符。"*"号可以代表多个任意的字符,“?”号代表任意一个字符。cp *.jpg ./aaadaily_backup.sh赋予这个文件“可执行”权限。chmod +x ./daily_backup.sh运行脚本./daily_backup.sh脚本文件并不要求特定的扩展名,只要是文本文件,具有可执行权限即可。单...原创 2019-06-19 20:00:30 · 206 阅读 · 0 评论 -
linux的基本操作总结
wubi 是Windows UBuntu Installer的缩写, 它的功能,就是帮助你在Windows7 系统下安装我们Ubuntu系统。U盘安装UltraISO制作安装U盘i386指的是x86架构的32位CPU,因为这种架构是在当年Intel公司生产Intel386处理器时就确定下来的,所以叫做i386.ubuntu-10.04-alternate-386.iso. a...原创 2019-06-19 19:58:46 · 401 阅读 · 0 评论 -
解决IAR在线不能下载的问题
$TOOLKIT_DIR$\config\flashloader\Freescale\FlashKLxx32K.board在框中添加如上就可以运行了,下载了。原创 2015-07-01 13:25:19 · 6456 阅读 · 0 评论 -
单片机网关下载程序流程小纪
单片机网关的程序分为两部分boot和应用程序。boot是从8000000地址开始的,应用程序是从8004000开始的。原创 2015-08-26 14:50:28 · 588 阅读 · 0 评论 -
keil注册机激活的方法
一次用注册机产生密码,在license里可能不可以激活。第一次运行一定要记住,要以管理员的身份运行mdk。以管理员的身份运行,注册成功。记录一下原创 2015-08-26 11:13:12 · 6929 阅读 · 1 评论 -
读取密码的方式
244c为密码,十进制为9292原创 2015-08-31 19:18:51 · 662 阅读 · 0 评论 -
从单片机读程序,然后下到另一个单片机
Target ->Read back->Entire chip整个片子读取,如果下载不成功,可能出现了保护。Target->Unsecure chip解保护 然后下载原创 2015-09-12 11:11:13 · 2853 阅读 · 2 评论 -
SVN地址
https://129.1.1.9:8443/svn/EPD_RD原创 2016-01-30 08:55:39 · 461 阅读 · 0 评论 -
测试IO高低电平是遇到的问题(调试工装遇到的问题)
IO 电平的检测调试了两天才明白,四路电平的检测同事测试会进入hardfault。调试串口的配置:#define RELAY1_CHK_PORT GPIOD#define RELAY1_CHK_PIN GPIO_Pin_6#define RELAY2_CHK_PORT GPIOD#define RELAY2_CHK_PIN GPIO_Pin_7#define REL原创 2016-04-12 20:01:09 · 897 阅读 · 0 评论 -
小型调度框架
架构的运行机制 while (1){task_handle();} voidtask_handle(void){ uint8_t i; for (i = 0; i { if ((is_task_set(tasks[i].id)) ||(is_task_always_alive(原创 2017-08-09 14:02:33 · 556 阅读 · 0 评论 -
阳历以及阳历的闰年
阳历以及阳历的闰年 阳历是当今国际间官方通用的历法,也叫公历。 阳历依据地球绕太阳转一周的时间长度,定为一年。地球绕太阳转一周,叫一个回归年,总长度365.2422天,也就是365天5小时48分46秒。 阳历规定一年12个月。其中,1、3、5、7、8、10、12为大月,每月都是31天;4、6、9、11为小月,每月都是30天;平年的2月只有28天,闰年的2月29天。转载 2017-08-15 13:21:43 · 782 阅读 · 0 评论 -
MCU的编译和基本知识学习(1223)
Code: 主要用来存储代码Data Const: 用来存储const变量Data Zero: 没有赋值的全局变量Data: 已经赋值的全局变量Heap: 用malloc进行分配Stack: 局部变量SRAM : MCU用DRAM: 一些内存条NOR: MCU原创 2017-12-23 16:07:28 · 734 阅读 · 0 评论 -
vm .a的库
在命令里敲入 vm .a的库 ,可以看到库里包含的函数。原创 2018-01-12 10:56:10 · 184 阅读 · 0 评论 -
Eclipse配置
第一步,在工程栏右键,点击C Project,打开如下窗口。location 加载的是文件工程,选择标红操作第二步: 加载.elf文件,操作如下标红第三步: 加载GDB,如下标红操作原创 2018-02-03 20:18:15 · 384 阅读 · 0 评论 -
LINUX设备驱动开发之0417
源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。总结一下,源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。在编译时,编译器只检测程序语法,和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC...原创 2018-04-18 09:02:44 · 311 阅读 · 0 评论 -
联网温控器的测试
1.设置操控器的ID发送:7E 00 00 00 00 00 00 00 00 00 05 01 01 00 00 00 85接收:第一遍接收:7E 00 00 00 00 00 00 00 00 00 01 00 7F(这种情况是上电复位后出现的)第二遍接收:7E 00 00 00 00 00 00 00 00 00 01 FF 7E 2.使用抄控器读取00 03原创 2015-06-18 23:23:26 · 606 阅读 · 0 评论