基础知识
文章平均质量分 68
帅德布耀德
还需要介绍吗
展开
-
notepad++中使用正则表达式
正则表达式原创 2023-02-24 14:20:59 · 7243 阅读 · 0 评论 -
嵌入式系统调试中偶发性问题解决技巧
嵌入式 偶发性问题原创 2022-12-12 21:21:32 · 700 阅读 · 0 评论 -
核间通信(IPC)的两种解决方案
共享内存在核间通信方案中,一个核可以将数据写入共享内存,Mailbox可以将内存指针传递到另一个核上,另一个核可以拿到内存指针后,直接从Share Memory读取数据,这一个过程不需要经过数据的拷贝,因此,非常高效,适合大数据量的传输。同时,同一种类型的多个核心又可以运行在不同的模式,比如A72可以运行的SMP模式,双核R5F可以运行在Lockstep或Split Mode上,因此,核间通信方案要充分利用硬件提供的机制,实现高效的核间通信,从而充分发挥Soc的整体性能。这就是Mailbox的工作方式。原创 2022-09-13 00:46:39 · 15197 阅读 · 1 评论 -
对于p、v 操作的理解
如果只是单纯的用一个整型信号量来解决进程互斥,同步问题,那么如果信号量小于0,则会一直循环占用 cpu 资源,出现“忙等”现象,利用结构型信号量,可用将进程阻塞并放入队列,解放 cpu 资源,提高 cpu 利用率。因为信号量表示可用资源的数量,所以对于互斥情况,信号量为 1 ,表示可用资源只有一个,必须互斥使用。p、v 操作是基于结构型信号量的进程互斥,同步的通用原子操作。若可用资源有 n 个,那么信号量为 n。原创 2022-09-12 22:36:03 · 681 阅读 · 0 评论 -
写代码时大括号该不该换行?
当一回搬运工,我觉得下面这篇文章可以帮助理解“大括号是否要换行”这场争执的历史。原创 2022-09-08 21:14:52 · 4708 阅读 · 4 评论 -
windows平台下makefile操作教程
在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。nmake.exe在vs的安装目录下,原创 2022-09-06 20:43:57 · 5871 阅读 · 0 评论 -
linux下.bashrc文件修改和生效
所以,只能作添加:“PATH=$PATH:/some/directory”,假如你要添加/usr/local/arm/3.4.1/bin交叉编译命令,则操作为“PATH=$PATH:/usr/local/arm/3.4.1/bin”除了可以修改用户目录下的.bashrc文件外,还可以修改如“/etc/profile”文件、“/etc/bashrc”文件及目录“/etc /profile.d”下的文件。如果要执行的命令的目录在 $PATH 中,您就不必输入这个命令的完整路径,直接输入命令就可以了。原创 2022-08-25 16:54:09 · 13487 阅读 · 0 评论 -
探究为什么FreeRTOS 有些API不能在中断服务函数中调用,转而需要调用带ISR的版本
探究为什么FreeRTOS 有些API不能在中断服务函数中调用,转而需要调用带ISR的版本原创 2022-08-18 22:31:31 · 489 阅读 · 0 评论 -
史上最贱的数学题
01、几年前,一位退休的数学家Allan MacLeod偶然发现了一个方程,方程之奇令人叹为观止。老实说,我也算是大风大浪见的多了,但这么精妙的丢番图方程还是第一次见。注:有一个或者几个变量的整系数方程,它们的求解仅仅在整数范围内进行。最后这个限制使得丢番图方程求解与实数范围方程求解有根本的不同。也叫不定方程。在我碰到这道题之前,它已经被某人心怀恶意地发布在网络上,融入流行的朋友圈文化,肆意捉弄那些老实人。我根本没意识到我偶然看到的这道题到底是个什么样的怪物。它长这个样:你可能已经.原创 2022-05-02 12:47:47 · 676 阅读 · 0 评论 -
简单易懂的CRC原理阐述
转载:https://segmentfault.com/a/1190000018094567网上大多的教材都是面向大佬的很多细节原理都没有讲清楚,对于我们这些新萌菜鸟们实在太不友好了。于是我写一篇相对轻松易懂的博客,希望能对学习CRC的朋友们有所帮助吧!什么是CRC???你说小学3年级的小明同学不知好歹喜欢村长女儿王大麻子,于是羞涩的他想到写一封情书已表心意。正所谓闺女似情人,爱女心切的村长凡是信件统统要过他之手。如果这份情书被她爸稍加“几笔”岂不悲剧了?奇偶验证 ...原创 2020-12-08 17:59:44 · 1392 阅读 · 0 评论 -
UART与USART区别 (串口同步通信和异步通信)
UART的同步通信和异步通信https://blog.csdn.net/chipsea_mltsum/article/details/83897924STM32-USART同步异步串行通讯https://wenku.baidu.com/view/fbd1844ad5d8d15abe23482fb4daa58da1111ccc.htmlUART和USART有区别https://blog.csdn.net/wofreeo/article/details/100066791ua..原创 2020-11-04 21:52:10 · 46868 阅读 · 0 评论 -
STM32让printf通过串口打印及自定义printf函数
https://blog.csdn.net/zhengyangliu123/article/details/50876993/在嵌入式系统中,通过串口打印log是非常重要的调试手段,但是直接调用底层驱动打印信息非常不方便,在c语言中一般使用printf打印基本的显示信息,而默认printf的结果不会通过串口发送,所以需要对printf的输出进行重定向。有时候需要同时从多个串口输出信息,如果仍然想通过printf函数输出信息,就需要自己写printf的实现。一. 初始化端口和配置...原创 2020-11-04 21:33:17 · 3866 阅读 · 0 评论 -
嵌入式如何使用printf打印
我们在程序中使用printf把需要打印的信息打印到控制台上,那么在嵌入式中如何用printf来输出打印信息呢? 有两种方法: 其一,把fput()函数重新定义:因为printf()会调用fputc()函数向控制台发数据,我们将fputc()重定义,在该函数里边用串口发数据,所以当我们调用printf()时,就可以通过串口把数据发出去。 其二,重新定义一个类似printf的函数 首先,介绍把fput()重新定义的方法struct __FILE{ int han...原创 2020-11-04 21:25:17 · 1420 阅读 · 0 评论 -
unix时间戳 为什么计算机时间要从1970年1月1日开始算起?
今天一时兴起想起了在SQL Server中使用DateTime.MinValue插入时间时报错的问题,原因就在于数据库的最小时间和.Net里的最小时间不一致导致的,网上查阅了些资料,找到如下结果Net Framewrok 中,DateTime.MinValue => 0001/01/01 00:00:00SqlDateTime.MinValue.Value => 1753/01/01 00:00:00SQL Server 2005 中,DateTime 最小值 => 17原创 2020-06-12 12:35:35 · 7454 阅读 · 0 评论 -
什么是UNIX时间戳? 时间戳有什么用?
1. Unix时间戳UNIX时间戳:Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题原创 2020-06-12 12:32:32 · 7978 阅读 · 0 评论