- 博客(146)
- 资源 (4)
- 收藏
- 关注
原创 ubuntu全屏的方法:
2.再输入需要设置的分辨率,例如:“xrandr -s 1920x1440”3.按ctrl+alt+enter履行便可全屏。1.打开终端,输入“xrandr”命令。
2023-12-06 10:27:08
1520
转载 重定位
一、必须知道的几个概念。1、链接地址和运行地址。①运行地址,顾名思义就是程序运行的时候的地址,也就是你用工具将代码下载到RAM的那个地址,也叫加载地址。②链接地址,由链接脚本指定的地址。为什么需要链接脚本指定地址呢?你想一下,在c语言编程中,当我们需要调用一个A函数的时候,编译器是怎么找到这个A函数?编译器肯定是知道它被放在哪里才可以找到它。那就是链接脚本的作用,链接脚本其实在程序被执行之前都已经指定A函数一个地址编号,以后所有的函数调用我们都会去这个地址编号那里寻找A函数。有点类似于c语言的指
2020-07-15 18:30:18
274
原创 Freertos中检测内存的剩余函数
static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte )
2020-03-16 15:20:05
2117
转载 0长度数组的使用,重点掌握的知识
0长度的数组在ISO C和C++的规格说明书中是不允许的,但是GCC的C99支持的这种用法。GCC对0长度数组的文档参考:“Arrays of Length Zero”如下代码片段,哪个更简洁更灵活,看一眼就知道了:#include <stdlib.h>#include <string.h> typedef struct tagArray { i...
2019-10-17 19:47:48
365
转载 Qemu搭建ARM vexpress开发环境
嵌入式软件开发依赖于嵌入式硬件设备,比如:开发板、外部模块设备等,但是如果只是想学习、研究Linux内核,想学习Linux内核的架构,工作模式,需要修改一些代码,重新编译并烧写到开发板中进行验证,这样未必有些复杂,并且为此专门购买各种开发版,浪费资金,开会演示效果还需要携带一大串的板子和电线,不胜其烦。然而Qemu的使用可以避免频繁在开发板上烧写版本,如果进行的调试工作与外设无关,仅仅是内核...
2019-09-22 21:20:59
613
1
原创 野指针和空指针
大家都知道指针的学习对于c语言学习来说可谓是至关重要的,下面我们来说一下在指针中两种比较特殊的关于指针的概念,野指针和空指针。首先说一下空指针。void* 这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容的操作.必须先转成别的类型的指针才可以把内容解释出来。还有'\0',这也不是空指针所指的内容. '\0'是...
2019-09-19 11:31:23
722
原创 如何产生指定范围的随机数
如果我们需要这个函数产生某个区间的随机数怎么做呢?首先我们看看rand()函数原型:int rand(void),可以看出这个函数不接受任何参数,那么怎么让他产生某个区间的随机呢?通用的公式是这样的:n+rand()%m,这个公式的意思产生区间[n,n+m)的随机数,即包括n到不包括m之间的随机数。由区间可以看出,式子中n是区间的开始,m你想要的区间的差。这个通用公式也很容易理解...
2019-09-02 14:58:45
1139
转载 text段,data段,bss段,堆和栈
转自:https://blog.51cto.com/bavies/1341426一个程序一般分为3段:text段,data段,bss段text段:就是放程序代码的,编译时确定,只读。更进一步讲是存放处理器的机器指令,当各个源文件单独编译之后生成目标文件,经连接器链接各个目标文件并解决各个源文件之间函数的引用,与此同时,还得将所有目标文件中的.text段合在一起,但不是简单的将它们“堆...
2019-08-16 20:16:53
1201
转载 位域的用法
位域的定义有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几 个不同的对象用一个...
2019-08-16 17:19:27
596
转载 Freertos初始化任务堆栈
调用函数pxPortInitialiseStack()初始化任务堆栈,并将最新的栈顶指针赋值给任务TCB的pxTopOfStack字段。调用函数pxPortInitialiseStack()后,相当于执行了一次系统节拍时钟中断:将一些重要寄存器入栈。虽然任务还没开始执行,也并没有中断发生,但看上去就像寄存器已经被入栈了,并且部分堆栈值被修改成了我们需要的已知值。对于不同...
2019-08-11 00:05:13
4632
3
转载 自旋锁
自旋锁自旋锁最多只能被一个内核任务持有。要是锁未被持有,请求它的内核任务便会立即得到它并继续执行。如果一个内核任务试图请求一个已经被别的内核任务持有的自旋锁,那么CPU就会一直尽心循环---旋转---等待锁重新可用。Spinlock_t my_lock = SPIN_LOCK_UNLOCKED;或者在运行时使用:Void spin_lock_init(spinlock_t *loc...
2019-07-18 12:08:41
146
原创 EPC-6G2C-L开发板
1、开发板出现Read-only file system的解决办法创建文件夹出现如下提示mkdir: can't create directory 'test': Read-only file system使用命令 mount rw -o remount / 即可解决...
2019-03-31 20:31:34
502
原创 mini2440 调试C语言部分的点灯代码
#define rGPBCON (*(unsigned int *)0x56000010)#define rGPBDAT (*(unsigned int *)0x56000014)#define rGPBUP (*(unsigned int *)0x56000018) rGPBUP=0x7FF; rGPBCON=0x00001400; rGPBDAT=0x20;...
2019-02-22 23:42:45
371
原创 解决VMware运行Ubuntu无法跨系统复制粘贴的问题
在Ubuntu的命令行中执行一下命令sudo apt-get autoremove open-vm-toolssudo apt-get install open-vm-toolssudo apt-get install open-vm-tools-desktop
2019-02-21 13:16:59
1449
转载 uboot命令行模式run_command函数的实现
uboot命令行模式大家应该都清楚,实际上都是靠run_command函数我是基于AM3358的uboot来说明的,其实其他的都一样,各个版本uboot的这个函数好像都是一个样子的。1.先看一下u-boot.lds文件,其中有如下一段,先记着这个事情。2.在command.h中有如下代码:一:二:三:这些代码要记着,之后就会揭晓他们的作用啦!3.举一...
2019-02-17 13:20:07
3935
转载 发射功率的测量方法
发射功率是无线电发射设备的主要技术指标,也是无线电管理部门需要检测的技术指标之一。本文主要介绍几种发射功率的测量方法。 功率测量的基本知识 1.1 功率测量的理论分析 在直流和低频时,电压的测量是简单和直接的。功率可以直接通过计算获得,P=V*I,由欧姆定律可知V=I*R,通过代换V或I,可得P=V*I =I2R= V2/R,只要知道V、I、R中任两个变量的值就可计算出功率值。 但在高频时...
2019-02-01 10:49:24
6360
转载 回调函数的文章(c语言实现),很好理解
https://blog.youkuaiyun.com/miao19920101/article/details/75648491
2019-01-17 00:20:27
997
转载 链接脚本文件的写法
对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述: SECTIONS { ... secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { conten...
2019-01-15 19:50:30
1414
1
转载 转载--C语言中的__FILE__、__LINE__和__func__
C语言中的__FILE__用以指示本行语句所在源文件的文件名,举例如下(test.c):#include <stdio.h> int main() { printf("%s\n",__FILE__); }在gcc编译生成a.out,执行后输出结果为:test.c在windows的vc6.0下编译执行结果为:c:\documents and settings\a...
2019-01-11 15:13:08
545
转载 ldr指令、ldr伪指令和mov指令的区别
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x...
2019-01-06 03:02:06
1195
转载 Nor Flash芯片内执行(XIP)
前言:这个所谓的芯片内执行(XIP)对于我这种一根筋的人是很难理解的,一直总觉得CPU是只能在RAM中运行程序,为毛能够在Nor Flash中执行程序呢,这里面就有个概念容易混淆,也可能是翻译理解的问题。 所谓片内执行不是说程序在存储器内执行,CPU的基本功能是取指、译码、运行。Nor Flash能在芯片内执行,指的是CPU能够直接从Nor flash中取指令,供后面的译码器和执行器来...
2018-12-31 01:27:10
1662
转载 void及void指针含义的深刻解析
转自:https://blog.youkuaiyun.com/geekcome/article/details/6249151void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pi...
2018-12-11 16:41:48
213
转载 void指针和数据指针
https://blog.youkuaiyun.com/qq_29924041/article/details/54882135
2018-11-19 22:57:58
1119
转载 Linux 线程同步---条件变量
pthread_cond_signal 使在条件变量上等待的线程中的一个线程重新开始。如果没有等待的线程,则什么也不做。如果有多个线程在等待该条件,只有一个能重启动,但不能指定哪一个。 pthread_cond_broadcast 重启动等待该条件变量的所有线程。如果没有等待的线程,则什么也不做。 pthread_cond_wait 自动解锁互斥量(如同执行了 ...
2018-09-02 00:23:50
159
转载 线程的创建、等待、退出
多线程程序的编译时,一定记得要加入动态库,例如:gcc k.c -o k -lpthread,但运行时却不用加。首先#include <pthread.h>。线程的创建:int pthread_create(&线程名字,NULL,线程执行函数名,传递的参数*arg),执行函数必须是这种:void *func(),可以带参数,也可以不带,函数体随意。成功则返回0。线程...
2018-09-01 23:12:05
565
转载 将函数名(地址)作为参数传递
转自:https://blog.youkuaiyun.com/abbcbbd/article/details/50411734#include<stdio.h>int add(int a,int b){return a+b;}int AAA(int a,int b,int(*p)(int,int)) //注意定义的函数指针{return p(a,b);//通过函数指针p调用所指...
2018-08-12 00:04:43
5502
原创 linux编程表示IP地址相关数据结构
(1)都定义在 netinet/in.h(2)struct sockaddr,这个结构体是网络编程接口中用来表示一个IP地址的,注意这个IP地址是不区分IPv4和IPv6的(或者说是兼容IPv4和IPv6的)(3)typedef uint32_t in_addr_t; 网络内部用来表示IP地址的类型(4)struct in_addr { in_addr_t s_addr; };(5)s...
2018-05-18 21:24:36
768
原创 Git命令总结
git initgit statusgit log 查看提交历史git relog 查看历史命令git add git checkout 用于切换分支,用于切换tag,切换到某次commitgit commit -m ' xxx'git branch 查看当前的分支git branch a 创建一个新的分支git branch -d a 删除a分支git branch -D a 强制删除a分支gi...
2018-04-21 00:35:28
225
转载 ESP32环境搭建
【安装依赖包】整个 ESP-IDF 环境需要用到很多软件,例如 git make``python等,因此我们需要先将这些软件预装好。sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial1虽然需要用到这么多软件,但是只需要这样一条简单的命令,系统自动就会帮我们装好,多方便啊,这就...
2018-03-20 11:52:56
455
原创 WIFI模块的各种配网方式之比较(串口AT、SmartConfig、微信Airkiss、WEB网页配网....)
http://blog.youkuaiyun.com/kennychow/article/details/78328010
2018-03-09 15:54:02
1055
原创 Scrapy添加IP的方法
1、settings.py中添加下载中间件DOWNLOADER_MIDDLEWARES = { 'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 127, 'lianjia.middlewares.MyproxiesSpiderMiddleware': 126,}2、middlewares.p...
2018-03-04 17:16:32
9854
原创 Scrapy添加用户代理的方法
参考:http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/downloader-middleware.html#id21、settings.py中添加下载中间件DOWNLOADER_MIDDLEWARES = { 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 12...
2018-03-04 16:56:50
860
原创 聚合数据api接入-Python版本
#!/usr/bin/python# -*- coding: utf-8 -*-import json, urllibfrom urllib.parse import urlencodeimport requestsdef main(): # 配置您申请的APPKey appkey = "624ff8635d4b228de27cd8591ebbf854" myd...
2018-02-09 15:54:27
747
原创 Python查北京天气预报
import requestsr = requests.get('http://www.weather.com.cn/data/sk/101010100.html')r.encoding = 'utf-8'print(r.text)
2018-02-05 14:06:42
664
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人