自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (5)
  • 收藏
  • 关注

原创 C语言char与short取反以及符号判断问题

具体看下图所示汇编。将test_c取反后赋值给tmp,应该是0XFF,又test_c是无符号,结果应该是255.但是通过汇编可以看到首先将test_c移动到eax寄存器,并无符号扩展。但是接下来not操作对象是eax寄存器,和test_c无关了,而默认数据类型是int,有符号,因此结果就是一个有符号数了再与0比较也无法得到正确结果。这个问题主要是在从对一个变量进行符号判断引出,有一种判断方法是#define ISUNSIGNED(Value) (Value >=0 && ~Value >=0)

2023-10-15 20:59:27 230

原创 嵌入式C++总结

new delete是运算符,malloc free是函数。前者不需要传入大小,后者需要。前者会调用构造、析构函数,后者不会。前者不需要强制转换,后者需要。

2023-09-24 22:22:19 485 1

原创 嵌入式面试/笔试C相关总结

本该是不同编译器结果不同,但是尝试了g++ msvc都是先计算c,再计算b,最后得到a+b+c是经过赋值以后的b和c参与计算而不是6。由上表可知,将q复制到p数组可以表示为:*p++=*q++,*优先级高,先取到对应q数组的值,然后两个++都是在后面,该行运算完后执行++。在电脑端编译完后会分为text data bss三种,其中text为可执行程序,data为初始化过的ro+rw变量,bss为未初始化或初始化为0变量。

2023-09-06 11:03:21 558

原创 c语言指针与数组

int *a;//指向int 变量int **a;//等价于int *a[],指向一个地址,改地址存放值是一个指向int 变量//等价于二维数组int p[][3],第一维度每加1,地址加第二维度个长度(这里是sizeof(int)*3)

2023-08-24 17:31:43 101

原创 Makefile多个子文件夹

以其中一个为例,SRC通过wildcard *.c查找所有c文件,然后通过patsubst讲*.c替换为.o文件,同事通过notdir去掉路径后讲obj文件放到../../build文件夹。其中根目录Makefile主要作用是调用其他子文件夹Makefile,每个子模块执行各自编译后在build文件夹下生成obj文件,最后再执行build文件夹下Makefile进行链接。因为有的文件是需要其他模块功能,有的还需要进行动\静态库链接,这里先编译等到最后得到全部obj文件后再链接。-L指定文件夹 -l库名。

2023-08-15 11:42:57 1090

原创 python 安装过模块sudo运行时候报错找不到

python linux ubuntu

2023-07-19 19:51:28 212

原创 stm32cubemx使用问题记录

stm32cubemx使用问题记录

2022-11-26 20:34:35 225 1

原创 MATLAB 深度学习部署到树莓派问题解决方法

matlab 深度学习部署到树莓派问题解决办法

2022-10-22 11:35:38 992

原创 Qlearning matlab实现

通过matlab实现简单的qlearning

2022-09-23 16:49:25 2354 11

原创 高斯消去解非齐次线性方程组

#include "stdio.h"#include "stdlib.h"#include "math.h"#include "string.h"// typedef struct // {// int (*Matrix)// /* data */// }Equation_Typedef; double Solve_Matrix_1[][10]={ 4 , 2 , -3 , -1 , 2 , 1 ,.

2022-01-15 15:30:29 395

原创 最小二乘法

#include "stdio.h"#include "math.h"#include "stdlib.h"typedef struct { double *Wi; double *G_X; double *G_Fx; int G_Num; int S_Order; /* data */} Data_Typedef;void Newton(void *Matrix,double *B,int Order,double *Res.

2022-01-15 15:27:32 197

原创 牛顿插值法、拉格朗日插值法

#include "stdio.h"#include "stdlib.h"//by wyztypedef struct{ double *G_X; //给定X double *G_Fx; //给定Y int G_Nums; //给定参数个数 double *S_X; //需要求解X int S_Nums; //需要求解X个数}Lar_Para_Typedef;//拉格朗日插值void Lagrange(Lar_Par.

2022-01-15 15:26:32 266

原创 小米oj第23题,找到第 N 个数字 II

//by wyz#include <stdio.h>#include "math.h"//获取到第i行字符串的长度long long Get_Line(long long i){ long long sum = 0,pow_num = 0,m = i,min = 0; while ((m /= 10) > 0) { pow_num++; } for (int j = 0; j < pow_num; j++) { sum += 9 *(j+1)*po.

2021-10-04 22:01:34 126 2

原创 linux交叉编译lib库记录

1、一般都是有个config(configure)文件运行生成Makefile文件,可以./config时指定参数,也可以直接修改makefile文件。例编译cjson时候的步骤:./configure PREFIX = /home/libcjson CC=/home/widora/openwrt_widora/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux

2021-07-01 19:28:28 490

原创 freertos启动后卡死

我在使用最新版的keil 5.34中使用freertos莫名其妙卡死,创建了事件、信号量等等都无法使用,任务一旦进入挂起状态再也恢复不了。看了很多方法都没用,最后是把优化等级从o3改成o0好了。o1、o2说不定也行。...

2021-05-04 08:41:54 1635

原创 C语言__attribute__学习记录

一、sectionsection 用于指定变量或函数存储段,例如:int *A__attribute__((section(".mysec"))) = &B;就会把变量a放在.mysec段,可以放多个变量在同一个段,同一个段的变量在地址上是连续的。不同段之间地址没有必然联系,即使紧接着.mysec段后面定义一个.mysec1也不能保证后面段的起始地址是在用法举例:#include <stdio.h>//定义函数指针类型typedef int(*ex...

2020-05-14 17:20:53 390

原创 大端小端存储方式以及区别方法

一、大小端存储区别大端存储:低字节放在高地址,高字节放在低地址。小端存储:高字节放在高地址,低字节放在低地址。数据0X12345678在0X20000000地址上的存储方式:地址 小端 大端 0X20000000 0X78 0X12 0X20000001 0X56 0X34 0X20000002 0X34 0X56 0...

2020-03-20 12:01:21 6781

原创 IIC、SPI、UART串行通信以及同步/异步通信学习

一、IIC连接线:VCC、GND、SDA、SCK。半双工异步通信。MSB。速率:100Kbps、400Kbps、3.4Mbps。数据采集:SCL为高电平期间采集,因此SDA必须在SCL为低期间跳变。空闲状态:SCL、SDA同为高。因此电路设计一般加上拉电阻。起始信号:SCL为高时SDA上出现下降沿。停止信号:SCL为高时SDA上出现上升沿。读写位 :1为读,0...

2020-03-14 17:39:41 6436

原创 rtthread 学习记录以及一些简单问题总结

1、目录结构在rtthread工程中一般有Drivers、DeviceDrive、Application、stm32_hal、kernel、finsh、libc、cortex-M3这八个目录,其中stm32_hal是官方驱动。kernel是rtt内核,finsh是rtt自带的控制台组件,可以进行简单的交互,有点类似低配版linux的命令行。libc是如果用到一些类似于time函数的库文件。co...

2020-03-14 15:47:18 1081

原创 海盗喝酒问题

有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船.........

2019-08-06 17:03:31 382

原创 删除一个数组其中一些元素后将剩余元素顺序排列

#include "string.h"#include <stdio.h>#define M 12#define N 4int A[M] = { 432,32,54,2,654,243,9,4,54,2,34,6 };int D[N] = { 3,5,6,9 };void del(int *D){ int i = 0,L = N; for (i = 0...

2019-07-19 15:51:55 744

原创 STM32无法正常把程序下载到非起始地址(生成HEX文件地址不对应keil中设置地址)问题解决方法

在编写BootLoader时要下载程序到非起始地址上,问题的现象就是下载失败,表现为下图所示: 即使可以下载程序完了读取发现下载的部分是由从起始地址下载程序截取的,下图中的设置没有任何作用。 查了一圈发现是生成的hex文件地址有问题,以为是mdk的bug,最后想通过j-flash ...

2019-07-10 18:24:19 2380 2

原创 rt-thread在stm32上运行修改外部晶振

    首先要将外部晶振的值修改为实际晶振的频率方法为:找到rtconfig.h 修改里面的 RT_HSE_VALUE 800 0000为 1600 0000,如下图所示,第156行即为修改过后值。    然后调整系统时钟初始化的预分频与倍频使之得到想要的72MHz时钟频率,默认为8M 进行1分频然后9倍频得到72M时钟频率,这里用的16M,而没有4.5倍频,因此要进行2分频,然后9倍...

2018-12-15 10:14:40 3087

原创 ARM M3、M4系列单片机bootloader介绍以及编写

BootLoader与正常程序在功能上完全一样,可以理解为两个程序,只不过在BootLoader运行完后会跳转到想要运行的程序中去,BootLoader也是主函数开始运行、也可以调用串口等外设,这也是可以串口下载程序的原理吧,在串口接收到你要下载的程序,然后将其写到flash中,再跳转过去,当然不仅仅可以用串口,还可以用其他任何可以进行数据传输的方式。要完成跳转需要进行以下几个操作:一...

2018-12-04 15:47:28 4144

原创 在linux上编译和使用JDBC

编译 : javac -cp XXXXX.jar *.java使用 : java  -cp XXXXX.jar :.Main

2018-05-26 09:48:01 1199

原创 安卓开发记录

1.截图(http://www.jb51.net/article/110655.htm) //合适的地方初始化数据 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); width = metric.wid...

2018-05-08 20:05:36 347

原创 Android开发中特殊textview使用

SpannableString spanString = new SpannableString("没有账户?注册为新用户");//设置指定位置指定颜色,并添加响应spanString.setSpan(new ClickableSpan() { @Override public void updateDrawState(TextPaint ds) { super...

2018-04-17 15:20:40 193

原创 C语言特殊宏定义的使用

1、##是将字母变成字符串的宏定义用法:#define N(a) #aprintf("%s",N(fdaf));输出为fdaf。不可能做到将一个变量通过这个操作变成字符串(比如int a =5,不能N(a)得到“5”,得到的只是“a”),但是宏定义的常量可以。需要一个中间宏如下:#define N(a) _N(a)#define _N(a) #a#define C 3print...

2018-04-03 10:33:11 527

原创 Orange pi GPIO输出控制,从点灯开始!

在拿到这块orange pi后就百度了下怎么控制它的GPIO,结果看到了这些说的很清楚,貌似可以直接开始动手了,但是那个44怎么来的,我又怎么把它和自己的orange pi 上的引脚联系起来呢?只说到引脚编号=控制引脚寄存器基数+控制引脚寄存器位数,但是不知道控制引脚寄存器基数。去看了看用户手册,还是没有,后来找到一个文章(https://www.cnblogs.com/muhuacat/...

2018-04-02 09:18:01 6314

原创 b站IJKPlayer试用问题

So包不是自己编译的,编译过程中出现了各种问题(没有linux/pre_event头文件和最开始编译FFmpeg一样的问题,后来看了下就是在编译FFMpeg的时候报了这个错误,因为之前编译FFmpeg的时候就在google上查到是因为版本太新(准确说是编译脚本.sh更不上版本的问题)就手动将里面的ffmpeg换位旧一点的版本,这个错误没了,但是还有其他错误),就放弃了自己编译,选择使用别人...

2018-03-24 18:34:55 491

MDK5 NRF52832 52810相关pack.7z

keil5在使用nrf52832、52810时报缺少pack,里面主要有cmsis 4.5.0以及familypack 8.15.0还有两个softdevice。

2019-12-19

串口调试工具X-Mon.7z

和sscom不同的是可以监听两个串口并指定收发口,从而可以观察二者通信数据包收发过程。

2019-11-05

jlink修复.zip

jlink使用一段时间后可能出现插上电脑后没有反应,或者红灯亮,可以重新烧写固件满血复活。里面有操作文档。

2019-10-15

AS3933-学习笔记.pdf

as3933应用手册,中文版,讲述了AS3933的寄存器作用以及如何配置。

2019-10-10

segger_j_link_keygen.rar

无法使用jflash进行下载时一般是由于jlink未激活所导致的,使用该软件可激活

2019-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除