好奇宝宝·权
码龄11年
  • 2,117,531
    被访问
  • 282
    原创
  • 961
    排名
  • 697
    粉丝
  • 21
    铁粉
关注
提问 私信

个人简介:才高六斗

  • 加入CSDN时间: 2011-10-03
博客简介:

欢迎光临

查看详细资料
  • 6
    领奖
    总分 2,447 当月 6
个人成就
  • 获得1,125次点赞
  • 内容获得207次评论
  • 获得3,827次收藏
创作历程
  • 10篇
    2022年
  • 26篇
    2021年
  • 19篇
    2020年
  • 57篇
    2019年
  • 40篇
    2018年
  • 165篇
    2017年
  • 65篇
    2016年
成就勋章
TA的专栏
  • C/C++
    41篇
  • Life
    1篇
  • Linux系统
    128篇
  • 嵌入式系统
    46篇
  • 单片机系统
    43篇
  • 计算机系统
    35篇
  • 模电 数电 机电
    4篇
  • 物联网技术
    2篇
  • 集成开发环境
    4篇
  • 电路设计
    63篇
  • Git
    8篇
  • Android
    4篇
  • ESP8266
    2篇
  • C#
    3篇
  • OpenWRT
    2篇
  • FPGA
    5篇
  • FreeRTOS
    8篇
  • LwIP
    1篇
  • LittlevGL
    5篇
兴趣领域 设置
  • 嵌入式
    单片机嵌入式硬件
  • 硬件开发
    驱动开发arm开发pcb工艺
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【嵌入式】Cortex M4F DSP库

使用CM4内核自带的FPU需要在编译的时候添加编译选项:--cpu Cortex-M4.fp,以使能FPU指令集,否则使用的是普通Thumb2指令实现的DSP函数。同时还需添加宏定义:ARM_MATH_CM4,这在CMSIS DSP Library的arm_math.h里面用到。CMSIS DSP Library可以在ARM的官网找到:https://developer.arm.com/tools-and-software/embedded/cmsishttps://developer.arm.com/to
原创
发布博客 2022.06.19 ·
50 阅读 ·
0 点赞 ·
0 评论

【嵌入式】使用JLINK RTT打印log

没有串口的情况下可以使用JLINK的RTT即 Real Time Transfer功能。RTT的工作原理大致就是在内存里面创建一个RTT控制块RTT Control Block,即SEGGER_RTT_CB结构体。这个结构体里面存放了若干个上行通道和下行通道,每个通道都有一个数据buffer以及读写指针,构成了数据队列。向RTT控制块里面的任意一个上传通道写入log信息,然后JLINK能够通过读取RAM内容,获取到数据buffer和读写指针的内容。在JLINK的安装目录里面有RTT的代码:可以直
原创
发布博客 2022.05.28 ·
70 阅读 ·
0 点赞 ·
1 评论

【电路设计】AD操作笔记

自己习惯的AD操作:1、高亮当前层:shift + s2、修改多个被选中器件的共通属性: view -> workspace panels -> PCB -> pcb inspector3、选中多个器件,并进行上、下、左、右对齐:a + t/b/l/r4、原理图器件快速粘性复制:shift + move7、粘性移动:ctrl + move8、DRC检查:tdr9、根据选中的形状定义板子外形:dsd10、尺寸测量:ctrl + m11、清空测量标注:shift + c1
原创
发布博客 2022.05.22 ·
125 阅读 ·
1 点赞 ·
1 评论

【嵌入式】W801 OTA方案设计

W801是平头哥内核的WIFI芯片。给到的SDK里面没有找到中断向量表重定向的函数,类似于STM32的NVIC_SetVectorTable,所以中断向量表只能给主程序用,那么BootLoader就没法弄了。干脆不用BootLoader了,直接划一个分区用来存放updater用于更新固件。分区表设计如下图:国产芯片就是资料不全,规格书里面写了Flash的寻址空间为0x0800 0000 ~ 0x0FFF FFFF,但是在SDK里面,链接脚本是从0x080d0400开始的,如果把起始地址改成0x0
原创
发布博客 2022.05.10 ·
428 阅读 ·
0 点赞 ·
0 评论

【嵌入式】TLS协议基础

参考文章:https://www.internetsociety.org/deploy360/tls/basics/?gclid=Cj0KCQjwpcOTBhCZARIsAEAYLuXVTtaCVNbegx5XuY-WxZ7BwerSisLhr3GEhNiP-3VkXxGzPY5f6UMaAtAmEALw_wcBhttps://www.internetsociety.org/deploy360/tls/basics/?gclid=Cj0KCQjwpcOTBhCZARIsAEAYLuXVTtaCVNbegx5
原创
发布博客 2022.05.03 ·
277 阅读 ·
0 点赞 ·
0 评论

【嵌入式】IoT Security: Anti-Rollback

参考:https://www.silabs.com/security/anti-rollbackAdversaries may have knowledge of a security flaw found in an older firmware version and attempt to take advantage of it. The adversary attempts to load previously signed to re-open a closed security flaw.
原创
发布博客 2022.04.25 ·
236 阅读 ·
0 点赞 ·
0 评论

【C语言】浮点数精度问题

浮点数精度问题。
原创
发布博客 2022.03.29 ·
900 阅读 ·
0 点赞 ·
0 评论

【LittlevGL】看看LVGL8的draw_ctx

调用"lv_disp_drv_init"函数初始化一个显示设备驱动,一个显示设备驱动的结构体内容如下:typedef struct _lv_disp_drv_t { lv_coord_t hor_res; /**< Horizontal resolution.*/ lv_coord_t ver_res; /**< Vertical resolution.*/ lv_coord_t physical_hor_res;
原创
发布博客 2022.03.28 ·
632 阅读 ·
0 点赞 ·
0 评论

闲居即兴 - 反卷诗篇

依山傍水房树间,行也安然,住也安然。一条耕牛伴顷田,收也凭天,荒也凭天。雨过天晴驾小船,鱼在一边,酒在一边。夜晚妻子话灯前,今也淡淡,古也淡淡。日上三竿尤在眠,不是神仙,胜是神仙。他人穿好我褴衫,生也坦然,去也坦然。日复一日年复年,愁也一天,欢也一天。冬梅腊雪坐窗沿,炉在一边,茶在一边。傍晚知己酒桌前,哀也谈谈,乐也谈谈。寒时卧榻正好眠,不是神仙,胜似神仙。...
原创
发布博客 2022.03.13 ·
736 阅读 ·
1 点赞 ·
0 评论

【C语言】printf函数陷阱

URL被编码/转义之后(转换工具地址:URL在线编码转换工具)字符串内容改变了,例如:&fm=217&app=126&f=JPEG?w=363&h=225&s=9转为:%26fm%3D217%26app%3D126%26f%3DJPEG%3Fw%3D363%26h%3D225%26s%3D9可以发现其中“&s=9”被转成了“%26s%3D9”,注意,“%26s”在printf格式化打印函数看来是一个参数,表示打印一个字符串,一共打印26个字符,
原创
发布博客 2022.03.03 ·
449 阅读 ·
0 点赞 ·
0 评论

【C语言】堆内存调试追踪

#ifdef MEMORY_DEBUG#define MALLOC(_SIZE) malloc(_SIZE)#define FREE(_P) free(_P)#else#define MALLOC(_SIZE) malloc_debug(_SIZE, __MODULE__, __LINE__)#define FREE(_P) free_debug(_SIZE, __MODULE__, __LINE__)#endif
原创
发布博客 2021.12.29 ·
704 阅读 ·
0 点赞 ·
0 评论

【计算机】32位和64位系统代码兼容

代码为了兼容32位MCU和64位PC机(例如PC上运行UI模拟器,PC上的UI代码需要可以在MCU上无修改直接编译运行),需要注意在64位的PC上,指针的长度是8个字节,计算机的字长可以使用:sizeof(long)或者sizeof(void *)来计算。如果需要分配一个指针的内存空间,不能直接分配4字节,而是分配字长的字节数。另外,进行指针的强制类型转换获取指针的值的时候,需要注意不要用 uint32_t 这样的32位类型进行强制装换指针,可能会丢失数据。 realloc(sizeof(test)
原创
发布博客 2021.12.02 ·
344 阅读 ·
0 点赞 ·
0 评论

【ARM】Use Linker Script File to build an STM32 project from scratch

链接脚本文件,用于控制链接过程。以stm32在Linux环境下编译作为示例,项目链接git库地址:tangquan/test.ld_file.proghttps://gitee.com/tq797/test.ld_file.prog各种原因,参考教程的地址在文件startup_stm32f401xc.c里面。...
原创
发布博客 2021.10.24 ·
1526 阅读 ·
0 点赞 ·
0 评论

【计算机】MBR GRUB

参考文章:主引导目录(MBR)结构及作用详解MBR 也就是主引导记录,位于硬盘的 0 磁道、0 柱面、1 扇区中,主要记录了启动引导程序和磁盘的分区表。我们通过图 1 来看看 MBR 的结构。 图 1 MBR的结构 MBR 共占用了一个扇区,也就是http://c.biancheng.net/view/1015.htmlgrub原理及使用详解_终身学习的程序猿-CSDN博客_grubgrub原理及使用详解转载请注明出处:http://blog.csdn.net/rosetta 实验环境V...
原创
发布博客 2021.10.16 ·
127 阅读 ·
0 点赞 ·
0 评论

【FreeRTOS】stack overflow detection

FreeRTOS官方给了两种内存溢出检测方案:FreeRTOS - stacks and stack overflow checkingFreeRTOS is a portable, open source, mini Real Time kernel. A free RTOS for small embedded systemshttps://www.freertos.org/Stacks-and-stack-overflow-checking.html【进阶】三种" 堆栈溢出检测 "方法,请拿去吹牛
原创
发布博客 2021.10.13 ·
242 阅读 ·
0 点赞 ·
0 评论

【计算机】ABI and EABI

参考维基百科文章:Application binary interfacehttps://en.wikipedia.org/wiki/Application_binary_interfaceABI全称Application binary interface,和API(Application programming interface)的概念很像,都是规定了不同软件模块之间的调用规范(接口)。不同的是API是规定在较高的源码层的调用规范,而ABI是定义在CPU硬件层的规范。API可以由应用开发程序员设
原创
发布博客 2021.10.13 ·
130 阅读 ·
0 点赞 ·
0 评论

【OS】Microkernel and Monolithic kernel

参考文章,介绍微内核操作系统概念:操作系统微内核介绍https://zhuanlan.zhihu.com/p/364429755下面这篇文章是将微内核和宏内核的概念放在应用软件开发中去的,微内核架构的软件支持插件的形式扩展软件功能:什么是微内核架构_春哥大魔王的博客-CSDN博客什么是微内核架构相信大家都听说过微内核架构,也或多或少做过一些类似于微内核架构的设计,为了可以更好的设计出微内核的架构,我们了解下什么是微内核架构。说到微内核架构,大家首先会想到的是Ecl...https://blog.cs
原创
发布博客 2021.10.12 ·
103 阅读 ·
0 点赞 ·
0 评论

【Linux】System Calls

man syscallsThe system call is the fundamental interface between an application and the Linux kernel.
原创
发布博客 2021.09.30 ·
108 阅读 ·
0 点赞 ·
0 评论

【Algo】快排第一趟

参考文章:快速排序算法(QSort,快排)及C语言实现上节介绍了如何使用起泡排序的思想对无序表中的记录按照一定的规则进行排序,本节再介绍一种排序算法 快速排序 (Quick Sort,简称快排) 。 C语言中自带函数库中就有快速排序qsorhttp://data.biancheng.net/view/71.html49,38,66,90,75,10,20...
原创
发布博客 2021.09.26 ·
83 阅读 ·
0 点赞 ·
0 评论

【C语言】定义二维数组并不会在创建一个指针数组

突然感觉自己的C语言基础好差劲。定义一个二维数组:char a[8][64];又有两个函数定义如下:void testfun1(char **strings, int count);void testfun2(char strings[][64], int count);如果把数组a传入到 testfun1 中去,软件挂了。如果把数组a传入到 testfun2 中去,软件正常。定义数组a的时候,按照我原先的想法是会在内存中创建一个 char * 类型的数组,名字就叫a,.
原创
发布博客 2021.09.24 ·
109 阅读 ·
0 点赞 ·
0 评论
加载更多