自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello.Aaric的博客

沉睡中的程序猿

  • 博客(38)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 单片机软件的常见问题及对策

触发串口噪声中断后,需要对串口重新初始化。串口通讯不了时,可以用示波器抓一下RxTx的通讯波形,用1bit的时长来计算一下波特率,比较一下和代码配置的波特率是否一致。ADC采样ADC通过热偶采集温度时,如果想减少flash占用,可以根据需求在几个特殊温度点附近多放几对R-T值,其他温度点的R-T值每隔5℃或10℃放一对,然后通过线性方程计算温度。STM的单片机代码库针对多通道ADC+DMA的配置,HAL库和LL库有问题,采集到的数据放不到正确的位置上,需要用标准库。IICS

2023-06-06 19:06:49 630 1

原创 五款开源内容管理平台对比(免费部分):bolo/fastadmin/wordpress/zblog/redmine

五款开源博客平台对比:bolo博客,fastadmin后台开发框架,wordpress建站平台,Z-Blog博客平台,Redmine项目管理平台。笔者推荐使用Z-Blog或WordPress。

2023-03-17 10:55:26 1745

原创 TI的bootloader启动过程——以UART为例

TM4C123G用的是Cortex-M4架构,内存地址如下图,flash起始地址为0x00000000,RAM起始地址为0x20000000。开始debug,PC指针的起始位置是“_c_int00()”函数的入口。在bootloader程序里,_c_int00()这个函数被定义在bl_startup_ccs.s这个汇编文件中,可以看............

2022-06-13 18:47:51 1161

原创 CCS11导入TI-RTOS

首要任务是,确定适配的软件版本,所以第一步,建议先导入项目。1、导入项目view->Resource Explorer

2022-05-26 21:08:54 860

原创 CCS11中使用tiarmclang编译器

1、编译器简介armcl:即TI Arm® C/C++ Compiler Tools,截止2022年5月,最新的版本是20.2.x,笔者使用的是20.2.5版本。tiarmclang:即TI Arm® Clang Compiler Tools,截止2022年5月,最新的版本是2.0.0。tiarmclang是TI开发用来替换armcl的下一代编译器,衍生自开源的Clang编译器。其在兼容性和代码优化方面,比armcl和gcc更具优势。而且tiarmclang还支持可视化的代码覆盖率。2、 切

2022-05-25 15:37:47 2232

转载 TM4C123GH6PM单片机裸机任务调度程序

本例程将原作者的调度代码稍作调整,移植到了TM4C123GH6PM单片机,并且已在EK-TM4C123GXL评估板上验证通过。

2022-05-12 20:53:36 938 4

原创 TM4C123GH6PM 串口0+DMA+接收超时中断

本例程在TM4C123GH6PM单片机上,模拟STM32的DMA+IDLE中断,实现串口的接收功能,已在EK-TM4C123GXL评估板上验证通过。原理如下:1、串口0通过DMA的pingpang模式接收,DMA的transfer size为1字节,即每个字节都会触发DMA中断。2、串口使能DMA时,无法正常使用ReceiveTimeOut中断,所以本例程使用Timer0来实现“接收超时中断”,也即STM32的IDLE中断。3、串口发送也是通过DMA,DMA的transfer size也是为

2022-05-12 19:59:44 3215 2

原创 钬激光医疗专业名词

beam dump:束流收集器catheter:导尿管Chiller:制冷机coolant:冷却剂CTH:Cardiothoracic的简写,心胸(医疗)distal:末梢的FDA:Pure Food and Drug Administration 食品及药物管理局fiber:纤维Hertz:赫兹Joules:焦耳numerical quantities:数量值PFN:Pulse Forming Network 脉冲形成网络POST:Power On System TestPRF:

2022-04-21 20:42:36 311

原创 _gfortran_runtime_error_at未定义问题

编译fortran代码时报错:undefined reference to `_gfortran_runtime_error_at解决办法:编译选项加 -L/path/to/gcc/lib64/ -lgfortran

2021-07-15 01:42:57 604

原创 Linux多线程应用程序--新手练习程序

涉及的内容:任务队列、自旋锁、信号处理、生产者-消费者可以用这个程序练习一下gdb多线程调试,编译命令:make v=debug// task_queue.c#include "task_queue.h"Q_NODE *q_head = NULL, *q_tail = NULL, *q_current = NULL;pthread_spinlock_t queue_spinlock;int g_param = 0;static pthread_t pid_producer, pid

2021-05-03 21:22:30 150

原创 N个数平方和的平方根--高精度算法

N个数平方和的平方根,公式如下:我们都知道,计算机浮点数的表示,越靠近0点,所表示的浮点数精度越高,如下图。那么,如果按照上图的公式直接计算,所得的结果精度会丢失得非常严重。算法设计为了避免丢失精度,我们就有了设计算法的核心思想:在计算平方和时,将每个加数,都转换为0到1之间的小数。在计算出所有元素的平方和之后,再乘以放大倍数,这样就可以减少计算过程中的精度损失。用下图所示的公式表示。图中A即为放大倍数。那么我们如何获取放大倍数A呢?方法一:在开始计算之前,先遍历

2021-04-21 23:45:05 1852

原创 windows下常用的_vimrc配置

效果图配置set nocompatible "set compatible让 vim 关闭所有扩展的功能,尽量模拟 vi 的行为但这样就不应用 vim 的很多强大功能,所以一般没有什么特殊需度要的话(比如执行很老的 vi 脚本),都要在 vim 的配置开始,写上 set nocompatible,关闭兼容模式。由于这个选项是最最基础的选项,会连带很多其它选项发生变动(称作副作用),...

2020-04-17 10:11:56 1457

原创 Git-pull网速太慢如何修复

Git用了一段时间,网速又变慢了,这里记录一下需要设置的地方,方便以后修复。我用的是win10系统。1:修改Git安装目录下的hosts文件我的安装路径是:D:\Program Files\Git\etc\在最后添加下边两句:13.250.177.223 github.com31.13.81.1 github.global.ssl.fastly.net域名不用变,但I...

2020-03-02 19:05:18 2300

原创 户户通信号锅的方向

老家户户通没信号,前后折腾了好几天。今天把数据记下来,省得以后再浪费时间。位置:甘肃平凉海拔:1920米经纬:北纬35°14'59",东经105°35'48"方向:西南234°坡度:-9°以上数据,调出的信号质量62%,信号强度98%。以下是截图:避坑指南一、注意,一定注意,当信号锅朝向在西南214°的时候,信号质量和信号强度也会超过40%。但是,但是,这时...

2020-02-28 15:36:59 13330

原创 STM8L151C8T6切换时钟信号

先说重点:切换时钟源后,需要重新初始化时钟相关的外设。项目需求,单片机在A状态下使用外部12MHz的晶振作为时钟信号,B状态下使用内部时钟HSI。代码如下://初始化时钟信号//形参:UINT8 Clk_Flg:时钟源,可以选为HSE或HSIvoid InitClock(UINT8 Clk_Flg) { UINT16 Clk_Cnt = 0; if(HSE == Clk_...

2019-12-17 14:56:28 1003

原创 while(1)和for(;;)的区别-汇编对比

直接上结论:for(;;)的效率高于while(1)。证明如下:C源代码:void main(void){ while(1); for(;;);}对应的汇编代码:---void main(void) {00D616F0 push ebp 00D616F1 mov ebp,esp 00D616F3 sub ...

2019-11-25 17:03:54 1375

原创 IAR启动文件的默认路径

C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3\common\bin\IarIdePm.exe

2019-10-28 16:51:57 2406

原创 详解 浮点数的规格化表示

《深入理解计算机系统》(兰德尔 E. 布莱恩特)中对浮点数的描述不容易懂,在这里记录一下,以加深理解。1、IEEE浮点表示IEEE(读作“eye-triple-ee”)浮点标准754中,用图1的形式来表示一个数:图1 浮点数表示形式​​​符号(sign)——s决定这个数是负数(s=1)还是正数(s=0),而对于数值0的符号位解释,作为特殊情况处理;尾数(significand...

2019-06-13 20:09:17 39868 12

原创 STM8L自带bootloader使用教程(即使用Boot ROM升级)

笔者使用的单片机型号是:STM8L151C8T6,有64kFlash本教程可能使用的文件下载地址:官方固件及指导手册:https://www.stmcu.com.cn/Index/search?search_keywords=UM0560百度网盘链接:https://pan.baidu.com/s/1XyBWJIhHsuwWgwGNuHaULA 提取码:9rgkCSDN下载链接...

2019-05-24 13:00:44 4347 2

转载 C语言中堆和栈的区别详解

原文地址:https://blog.csdn.net/tigerjibo/article/details/7423728一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值...

2019-04-28 10:09:50 3243

原创 详解 有符号定点小数 的补码表示

    最近在读《深入理解计算机系统》(兰德尔 E. 布莱恩特),理解定点小数的补码表示时绕了些弯路,在这里记下来,以作巩固。概念补充    补码(Two's complement)、反码(Ones' Complement)、原码(Sign Magnitude):    注意,补码和反码中,撇号的位置不同。    术语补码来源于这样一个情况,对于非负数x,我们用2ⁿ - x(这里只...

2019-02-23 11:16:23 22545 18

转载 bootloader系列五——内存初始化

内存计算方式:Logical Bank (逻辑表)的数目    *    每个Bank中单元格的数量    *    每个单元格的容量;;一般芯片有4个逻辑表,假设每个表有4M个单元格,每个单元格可以存16bit(2字节)的数据,则该芯片容量为:4 * 4M * 2字节 = 32M字节定位内存地址时,需要先选择逻辑表,即L-BANK选择信号;在一张逻辑表中定位一个单元格,需要行地址...

2018-09-09 20:45:15 1194

转载 各大厂商电池管理系统芯片解决方案解析

转载自:http://www.360doc.com/content/17/1206/21/48293593_710616459.shtml电池管理系统(BMS)主要有以下部件:1)模拟前端采集模块:主要用于对电池组电压,充电电流,放电电流,单体电压,电池温度,等参数进行采集。通常采用隔离处理的方式。(除温度信号。2)电池保护电路模块:通常这部分是采用软件控制一些外部器件来实现的。如通过...

2018-09-08 15:52:48 12486 1

原创 PIC头文件——寄存器位地址定义代码解析

编译工具:MPLAB X IDE v4.15单片机型号:PIC16F1938MPLAB开发环境中,包含各种PIC系列单片机的头文件,我在理解头文件中关于寄存器位地址定义时绕了些弯路,所以特意写出来加强记忆。以LATA寄存器为例:在pic16f1938.h头文件中,关于LATA寄存器的定义如下// Register: LATAvolatile unsigned char ...

2018-08-29 19:41:03 3637

原创 C语言——MPLAB中if语句不执行问题

先说结论,if语句中多加一对小括号即可。具体调试过程如下:我用的编译器版本是MPLAB X IDE v4.15,单片机型号是PIC16F1938;想用6位数码管实现时钟功能,结果写出来的代码,片选顺序有问题,而且时分秒累加及进位都有问题。拿单步跟踪了老半天,发现是if语句进不去。if语句如下: unsigned char Buffer[3] = {0}; if(Buffer[0...

2018-08-28 10:52:20 2993 4

原创 中断服务程序(ISR)应遵循的高效原则

用C语言编写中断服务程序(ISR)要遵循高效的原则: 中断函数代码应尽量简洁——一般不宜在中断函数内编写大量复杂冗长的代码; 应尽量避免在中断函数内调用其他自定义函数; 尽量避免在中断内调用数学函数——因为某些数学函数涉及相关的库函数调用和中间变量较多,可能出现交叉调用。在必须使用数学函数时,可考虑将复杂的数学函数运算任务交给主程序完成,中断函数通过全局变量引用其结果; 宏的定义与调...

2018-08-27 11:29:41 3644

原创 bootloader系列四——时钟初始化

2440的时钟模块如下图(2440芯片手册237页) ,下载链接见上一篇博客。S3C2440可以使用外部晶振(XTIpll)(默认为12MHZ)和外部时钟(EXTCLK)两种方式输入时钟信号。它由跳线OM[3:2]决定。 S3C2440 默认的工作主频为12MHz(晶振频率),S3C2440有两个PLL:MPLL和UPLL。通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、...

2018-08-21 14:29:45 847

原创 bootloader系列三——核心初始化

arm架构指导手册下载地址:链接:https://pan.baidu.com/s/1K7wlX3sxNTeJ9Z-tazcVcg 密码:3xii2440芯片手册下载地址:链接:https://pan.baidu.com/s/10QXymx0Em3d1XCmf_o2_zA 密码:o69oARM920T内核指导手册:链接:https://pan.baidu.com/s/1mWz7g...

2018-08-19 20:43:35 721

转载 bootloader系列二——arm920t--bootloader架构设计

转载自:https://www.cnblogs.com/china-sdd/p/6171447.html后续章节我会按照本架构进行介绍----转载者注完整的代码会在本系列最后一篇博客中上传。----转载者注2440 ARM 处理器启动流程:从nand flash 方式启动,处理器将前端的4k的内容复制到SRAM(stepping stone)里,大于4k的内容复制到内存中。boot...

2018-08-19 18:49:06 299

转载 bootloader系列一——Arm处理器启动流程解析

转载自:http://http://www.cnblogs.com/wrjvszq/ 芯片手册下载地址:链接:https://pan.baidu.com/s/1F0WGwZDSg92EjwLd377tsw 密码:bmeb Arm启动流程解析 谈到arm的启动流程不得不说的是bootloader,但是我这篇文章主要来谈谈arm启动流程的,所以bootloader只是跟大家简介一下就o...

2018-08-08 11:15:53 9417

转载 tslib-1.4移植到mini2440开发板

https://www.cnblogs.com/ape-ming/p/5134542.html为移植个tslib折腾了好几天,最终发现还是资源有问题,幸好遇到这篇教程,帮了大忙。ps:我跳过了修改源码的步骤,直接移植,也没有问题。和该教程不一样的地方,是我的configure命令:./configure --host=arm-linux --prefix=/minigui/source/lib4t...

2018-06-01 14:00:03 480

原创 Eclipse: Could not find symbol "XXX" in index 解决办法

出现这个错误时,按住Ctrl键同时鼠标左击函数名、结构体等,不会跳转到其定义的地方,按快捷键F3、F4也没有用,且不能对变量或关键字进行颜色及特殊字体标记。解决办法:在Window->Preference->C/C++->Indexer中,如图所示,选中Index all variants...等项,去掉Skip...等选项,点击保存。之后,刷新或重新加载整个项目即可。...

2018-05-04 11:58:15 15158 12

原创 网页监控----Mjpg‐streamer移植

更新于2018年04月16日参考文章:https://blog.csdn.net/xiongmaojiayou/article/details/7604746Mjpeg‐stream介绍Mjpeg‐stream 是一个开源软件,用于把mjpeg格式的文件变成流媒体输出。1.  环境平台PC机:vmware 虚拟机中安装的red hat 6 (已经配好交叉编译环境)目标板:S3C2440开发板上运行...

2018-04-16 18:41:08 1000

转载 C语言的宏总结

https://blog.csdn.net/PirLCK/article/details/51254590 1. 简单宏定义 简单的宏定义有如下格式:[#define指令(简单的宏)]  #define  标识符替换列表替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列...

2018-04-03 15:36:57 324

原创 三种页面置换算法的分析及C语言代码

详细word文档已经上传到百度网盘了,这是链接链接:https://pan.baidu.com/s/13lEZBX_VJAHZbhN22MvyMQ 密码:1etj,更新于2018年04月16日。。坑爹的csdn竟然不允许上传免费资源!!真过分。。1. FIFO,Optimal,LRU这三种置换算法的优劣?优点:①     FIFO页面置换算法实现简单,要求的硬件支持较少。②     Optimal...

2017-06-04 21:18:19 44725 41

原创 最大子数组和算法(Java实现)

三种最大子数组和算法的Java实现和比较代码于2018年12月12日重新更新了一下,因为之前代码上传时有部分丢失。这次,为了防止代码再丢失,我决定把源码的截图也贴上来(节选自《数据结构与算法分析——Java语言版》——Mark Allen Weiss 著 ---冯舜玺 译)。如下图:第一种算法:运行时间为O(N^3),这完全取决于第13和14行,它们由一个含于三重嵌套for循环中的O(1...

2017-05-20 15:57:48 1440

原创 处理机调度算法分析及C语言实现

 本博客最后更新于2018年12月29日,不知道CSDN到底出什么毛病了,之前上传的代码莫名其妙丢掉了几行语句。为防止再次丢失代码,我这次把cpp文件和word文档都上传到了百度网盘里,这是链接:https://pan.baidu.com/s/1LixFnRYsR6X7YAFAzairPw 处理机调度的目的是什么? 答:在多道程序环境下,主存中有着多个进程,其数目往往多于处...

2017-05-19 18:30:46 3274

原创 Java环境配置及eclipse单元测试

java环境配置及eclipse单元测试教程

2017-04-23 13:13:40 932

windows下常用的_vimrc配置

windows下常用的_vimrc配置,成功设置中文字体 guifontwide=NSimSun:h18 "新宋体

2020-04-17

STM8L的Boot ROM官方例程、软件及指导手册(提供源地址,可免费下载)

STM8L的官方指导手册及软件,提供官方源地址,(需注册)可免费下载。同时提供百度网盘地址,供不愿注册的读者下载 另外,与本资源对应的博客教程地址为:https://blog.csdn.net/AaricYang/article/details/90513294 百度网盘下载链接:https://pan.baidu.com/s/1XyBWJIhHsuwWgwGNuHaULA 提取码:9rgk 官方源地址: 1、ST Visual Programmer(软件) 下载地址:https://www.st.com/zh/development-tools/stvp-stm32.html 2、Flash loader demonstrator(软件) 下载地址: https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html

2019-05-24

mjpg-streamer及其依赖库jpeg - (提供源地址,均可免费下载)

mjpg-streamer的源下载地址为:https://sourceforge.net/code-snapshots/svn/m/mj/mjpg-streamer/code/mjpg-streamer-code-182.zip jpeg库的源下载地址为:http://www.ijg.org/files

2018-04-16

三种页面置换算法详解(含C语言代码)(提供百度网盘链接,可免费下载)

这是和文档相对应的博客链接:https://blog.csdn.net/AaricYang/article/details/72861566 该文档是对FIFO、Optimal、LRU三种页面置换算法的详解,包含C语言代码。 另外,该word文档已经上传到百度网盘了,这是链接,可免费下载。 链接:https://pan.baidu.com/s/13lEZBX_VJAHZbhN22MvyMQ 密码:1etj, 更新于2018年04月16日。。

2018-04-16

三种页面置换算法详解(含C语言代码)(提供百度网盘链接,可免费下载)

这是和文档相对应的博客链接:https://blog.csdn.net/AaricYang/article/details/72861566 该文档是对FIFO、Optimal、LRU三种页面置换算法的详解,包含C语言代码。 另外,该word文档已经上传到百度网盘了,这是链接,可免费下载。 链接:https://pan.baidu.com/s/13lEZBX_VJAHZbhN22MvyMQ 密码:1etj, 更新于2018年04月16日。。

2018-04-16

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

TA关注的人

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