自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

转载 步进电机S(SigMoid)曲线加减速【查表法】

首先感谢以下博客的博主提供的参考公式:https://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 首先在本设计中采用的步进电机控制方案为,单片机+16位定时器比较匹配中断(最好是16位及其以上)+步进电机驱动+42步进电机。较高的定时器精度能够实现更好的控制。在步进电机控制中往往需要对步进电机进行加减速控制,以达到平缓启停或者达到较高转速而不失步停转的目的,而在加减速控制中控制方法有两类:...

2021-01-05 10:49:37 1800

转载 STM32F4之FPU性能的充分发挥-设置要点

 浮点运算一直是定点CPU的难题,比如一个简单的1.1+1.1,定点CPU必须要按照IEEE-754标准的算法来完成运算,对于8位单片机来说已经完全是噩梦,对32为单片机来说也不会有多大改善。虽然将浮点数进行Q化处理能充分发挥32位单片机的运算性能,但是精度受到限制而不会太高。对于有FPU(浮点运算单元)的单片机或者CPU来说,浮点加法只是几条指令的事情。         现...

2020-12-16 17:46:20 606

转载 Linux的内存管理

Linux采用请求分页存储管理方法。系统为每个进程提供4GB的虚拟内存空间。各虚拟内存空间各自独立。  一 硬件基础还是逻辑地址,线性地址,物理地址,分段机制和分页机制依次转换。 其中涉及到GDT,LDT,段寄存器,段描述符,逻辑地址到线性地址的转换  linux的分段模型Linux使用如下段描述符内核代码段,内核数据段,用户代码段,用户数据段,TSS段,默认LDT段段基地址为0,段界限4GB,偏移量=线性地址Linu...

2020-08-13 16:43:54 285

转载 imx6报警温度设置

1)第一个问题:系统在运行过程中,温度到了比如70度,cpu内核达到105度就会挂掉解决办法:1)方法1:kernel 修改/drivers/thermal/imx_thermal.c 参数 按需修改:#define IMX_TEMP_PASSIVE   &nb...

2020-07-30 17:51:26 816

转载 linux调试工具 strace 和pstack 编译及使用介绍

一、简介     1、strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。     2、pstack是一个基于GDB的脚本命令,可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack...

2020-07-29 18:25:00 547

转载 关于linux工具--valgrind的移植和使用相关的知识汇总

一、Valgrind简介1.关于Valgrind:Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。它不仅仅是一个内存泄露检查器。它只是包含了一个检查内存泄露的工具而已。这个工具恰恰是 Valgrind 中用处最小的一..

2020-07-29 18:16:52 911

转载 Linux内存管理系统参数配置之OOM(内存耗尽)

一、前言本文是描述Linux virtual memory运行参数的第二篇,主要是讲OOM相关的参数的。为了理解OOM参数,第二章简单的描述什么是OOM。如果这个名词对你毫无压力,你可以直接进入第三章,这一章是描述具体的参数的,除了描述具体的参数,我们引用了一些具体的内核代码,本文的代码来自4.0内核,如果有兴趣,可以结合代码阅读,为了缩减篇幅,文章中的代码都是删减版本的。按照惯例,最后一章是参考文献,本文的参考文献都是来自linux内核的Documentation目录,该目录下有大量的文档可以参考,每一

2020-07-29 18:14:09 3127

转载 arm-linux的gdb移植

arm-linux的gdb移植分为两种情况.一种是交叉调试版。这一种模式是需要编译一个arm-linux版本gdbserver (GDB的stub模块).然后再编译一个X86版本交叉调试的gdb.为了与桌面版本身的gdb 区别开来,一般改名为 arm-linux-gdb。两者通过串口或者网络进行互联。还有一种是干脆把整个gdb移植成一个ARM的本地版。在开发板上直接用gdb来调试。前一种方法是比较正统的方法。它gdbserver可以通过arm-linux-gdb直接在host上单步调试target的应用程.

2020-07-26 17:26:32 397 1

转载 linux调试工具 strace 和pstack 编译及使用介绍

一、简介     1、strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。     2、pstack是一个基于GDB的脚本命令,可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack...

2020-07-25 16:20:27 890

转载 超详细的FreeRTOS移植全教程——基于srm32

准备在移植之前,我们首先要获取到FreeRTOS的官方的源码包。这里我们提供两个下载链接:一个是官网:http://www.freertos.org/另外一个是代码托管网站:https://sourceforge.net/projects/freertos/files/FreeRTOS/这里我们演示如何在代码托管网站里面下载。打开网站链接之后,我们选择FreeRTOS的最新版本V9.0.0(2016年),尽管现在FreeRTOS的版本已经更新到V10.0.1了,但是我们还是选择V9....

2020-07-10 14:34:07 948

转载 imx6 DDR Stress Test Tool

DDR Stress Test Tool 提供了两种用途。首先,它可以用来对校准DDR3,以便于MMDC PHY delay settings和PCB配对来达到最佳的DRAM新能。整个过程是全自动的,因此客户可以在较短的时间内让他们的DDR3工作起来。 另外,该工具可以运行内存压力测试,用来验证DDR3的功能和可靠性。压力测试可以用来验证硬件连接、MMDC寄存器参数和DDR3模式寄存器设置。测试最重要的目的是让客户验证DDR3在他们的自己的板子上运行稳定。 Calibration

2020-07-01 21:48:37 1098

转载 IMX6Q的DDR3初始化配置

      处理器:IMX6Q5EYM10ADDDR3时钟频率400MHz、528MHz      DDR3:NT5CB128M16BP-CG16位667MHz时钟频率1333MHz数据频率      相比于Exynos4412的内存,飞思卡尔IMX6的内存比较麻烦,耗费了比较多的时间...

2020-07-01 21:35:51 810

转载 STM32的AD用DMA方式时转换错位

今天无意之间看到了这篇帖子,是斑竹好久前发的~~~我突然意识到我的数据好像一直没有错位,看到这个我又试验了一下,发现把DMA_Cmd(DMA1_Channel1,ENABLE);放置到哪儿都是一样的啊~~~这个是原帖部分:STM32的AD用DMA方式时的请注意初始化顺序珍情岁月(84848098) 17:19:23    DMA_DeInit(DMA1_Channel1);  DMA_InitStructure.DMA_Pe...

2020-06-22 14:56:59 1255 4

转载 STM32硬件错误HardFault_Handler的处理方法

       在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。这说明STM32出现了硬件错误。        STM32出现硬件错误可能有以下原因: &nbsp...

2020-05-13 15:17:55 304

转载 步进电机S型曲线加减速算法与实现

一年前做过的S型曲线加减速算法,再次做的时候竟然犯错,在此总结记录一下,方便以后查阅,同时希望帮助初学者提供简单的参考资料(注:本项目采用的带细分的驱动器,MCU的OC比较输出模块产生50%的PWM方波)。S型曲线的的方程,在[-5,5]的图形如下图所示:如要将此曲线应用在...

2020-05-06 17:34:18 1159

转载 DRV8711的使用,堵转stall检测的使用及衰减模式

<div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-21113...

2020-05-06 15:07:25 1249

转载 CAN—通讯实验

本章参考资料:《STM32F4xx 中文参考手册2》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。若对CAN通讯协议不了解,可先阅读《CAN总线入门》、《CAN-bus规...

2020-02-05 18:28:35 879

转载 linux中Oops信息的调试及栈回溯

原文地址:http://blog.micro-studios.com/?p=615#comment-1069看后感想:這点比 ldd3上讲的都仔细2012年11月29日11:24:17:有BUG_ON就不用反汇编了。。。2012年11月30日11:14:13:回调函数跟丢了我遇到的情况:http://my.csdn.net/my/code/detail/28858=======...

2019-12-23 22:05:03 98

转载 linux oops定位问题

注意分析pc is at系统挂死的行号,结合反汇编定位。以及关键寄存器的值,还有dump_stack()打印出来的调用堆栈关系。oops的原因,也就是报告出错的原因; OOP信息序号; 出错时内核已加载模块; 发生错误的CPU序号; 发生错误的位置,以及当时CPU各个寄存器的值,这最有利于我们找出问题所在地; 当前进程的名字及进程ID 出错时,栈内的内容 栈回溯信息,可看出...

2019-12-13 22:09:44 389

转载 yocto inittab initialization processing

yocto是用来制作发行版image、BSP的一个很强大的工具,其文件系统的结构跟Ubuntu、redhat等很像,几乎如出一辙,这也能看出,yocto的成长也是能够整合多方平台(系统)的。好久没写博客,最近研究了一下yocto文件系统的启动流程,觉得挺有意思,在这里分享一下。废话少说,正式进入主题。内核起来,启动第一号进程(init进程,/sbin/init)后,就把控制权交给了init进程...

2019-10-10 17:26:01 235

转载 Linux驱动调试-根据oops定位错误代码行

1.当驱动有误时,比如,访问的内存地址是非法的,便会打印一大串的oops出来1.1以LED驱动为例将open()函数里的ioremap()屏蔽掉,直接使用物理地址的GPIOF,如下图所示:1.2然后编译装载26th_segmentfault并执行测试程序后,内核便打印了oops出来,如下图所示:2.接下来,我们便来分析oops:Unable to handl...

2019-09-28 16:58:58 207

转载 Linux 进程与信号的概念和操作 linux process and signals

信号与进程几乎控制了操作系统的每个任务。在shell中输入ps -ef命令,我们将得到如下结果:(译者注:-e Select all processes. Identical to -A; -f Do full-format listing. This option can be combined with many other UNIX-style options to add addi...

2019-09-28 16:49:06 183

转载 对Socket CAN的理解(2)——【Socket的原理及使用】

转载请注明出处:http://blog.csdn.net/Righthek谢谢!为了能够对Socket CAN的深入理解,我们需要了解Socket的机制。Socket的中文翻译为“插座”,在计算机世界里称为套接字。Socket最初是作为网络上不同主机之间进程的通信接口,后来应用越来越广,在同一主机上的不同进程之间通信也可以用Socket。简单来说,...

2019-09-09 20:59:19 183

转载 对Socket CAN的理解(1)——【CAN总线原理】

由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面的知识点后,我们再去分析基于Linux的Socket CAN的驱动。这样的话理解起来更加容易、易懂。(4)Socket ...

2019-09-09 20:58:21 255

转载 IMX6 CAN接口调试

1).简介CAN(Controller Area Network)总线是嵌入式设备最为常用的接口之一,常用于汽车以及工业自动化等嵌入式领域,因此本文就基于嵌入式Linux演示使用CAN总线进行通讯测试。本文所演示的平台来自于Toradex Colibri iMX6DL和Apalis iMX6D ARM嵌入式平台,这两个平台是都是基于NXP iMX6系列ARM处理器,支持双核心Corte...

2019-09-09 14:45:08 1769

转载 mount源码分析

Busybox-1.9.1在util-linux/mount.c的line:1609行首先映入眼帘的是:int mount_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;由于busybox是一个box,里面包含很多的可执行程序,如果cp,mount,umount等我们常用的一些命令,所以每个命令单独写入一个文件,而每个文件中也用类似...

2019-08-29 17:18:21 494

转载 Linux系统在嵌入式硬件上的移植

========================= 基本常识 =========================一、Linux系统的基本构成:1、loader2、kernel3、filesystem二、启动步骤:1、CPU从ROM(如果有的话)的0x0地址开始读取代码,执行loader;2、Loader初始化ram,并...

2019-08-29 10:57:42 342

转载 ubuntu移植到嵌入式平台

Ubuntu一个以桌面应用为主的开源GNU/Linux操作系统。Ubuntu用在PC的Intel框架,我们比较熟悉,。Ubuntu在ARM平台下运行,可能比较陌生。以下我们介绍Ubuntu 14.04到DLT-RK3288 ARM平台上。使用到的硬件平台:DLT-RK3288补充说明:虽然DLT-RK3288是基于4核32Bits Cortex-A17架构的CPU,该方法构建...

2019-08-29 10:32:20 3275

转载 ARM LINUX 扩展串口

----XR21V1414USB转串口 ----16C554总线扩展串口不同的项目,有些项目经常需要转串口。有两种方式,一种用USB去扩,另一种用16C554去扩。这两种从本质上来说,是一样的。成本上也不相上下。如果两种方式在项目设计中都可以的话,建议采用总线的方式。因为扩展串口总是...

2019-08-27 10:45:31 1260

转载 移植QT5.6到嵌入式开发板

目前网上的大多数 QT移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for windows ,本文就来介绍一下QT在嵌入式环境的搭建。移植以到 JZ2440 为例,使用韦老大提供的ubuntu9.10 虚拟机作为移植环境。当然,其它虚拟机也是可以的,我同样在ubunt...

2019-08-15 14:06:24 243

转载 svn 回退/更新/取消至某个版本命令详解

1. 取消Add/Delete取消文件svn revert 文件名取消目录svn revert --depth=infinity 目录名2. 回退版本方法1: 用svn merge1) 先 svn up,保证更新到最新的版本,如20;2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 。如果想要更详细的了解情况,可以使用svn diff -r 1...

2019-06-27 19:23:38 2217

转载 Linux 中libusb安装与调试

参考文章:https://blog.csdn.net/gd6321374/article/details/79903132https://blog.csdn.net/weixin_40983190/article/details/84940396编译安装libusb之后,无usb.h问题需安装compat-0.1.4对旧版本兼容usb.h包和库...

2019-06-06 19:12:40 597

转载 如何用autoscan和automake由makefile.am自动生成makefile

对于一个UNIX/Linux下C程序员来说,一个比较麻烦的工作就是写自己的Makefile。可能你有如下经验:写一个简单的C程序,自己多写几行gcc命令就把程序变成可执行的了;写一个稍微复杂点的程序,源文件个数可能在30个左右,还是写一行行的gcc命令就麻烦了,你可能想到写个makefile,你可能也在这样做着;但你某一天会发现你写的这个Makefile可能不是一个所有 UNIX/Linux类操作...

2019-06-04 22:04:04 454

转载 /proc/interrupts 和 /proc/stat 查看中断的情况

在/proc文件系统下,又两个文件提供了中断的信息。/proc/interrupts 文件中列出当前系统使用的中断的情况,所以某个中断处理没有安装,是不会显示的。哪怕之前安装过,被卸载了。从左到右分别是,irq的序号, 在各自cpu上发生中断的次数,可编程中断控制器,设备名称(request_irq的dev_name字段)$cat /proc/interrupts...

2019-05-06 17:00:54 1151

转载 Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)

硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。现在的服务器上动不动就是多 CPU 多核、多网卡、多硬盘,如果能让网卡中断独占1个 CPU (core)、磁盘 IO 中断独占1个 CPU 的话将会大大减轻单一 CPU 的负担、提高整体处理效率。VPSee 前天收到一位网友的邮件提到了 SM...

2019-05-06 10:26:30 622

转载 CPU中断绑定——计算 SMP IRQ Affinity

前天我们讨论了如何绑定特定的硬件中断到特定的 CPU 上,分散和平衡各个中断到不同的 CPU 上以获取更大性能的处理能力。上篇限于篇幅的关系,没有来得及进一步说明 “echo 2 > /proc/irq/90/smp_affinity” 中的 ”2“ 是怎么来的,这其实是个二进制数字,代表 00000010,00000001 代表 CPU0 的话,00000010 就代表 CPU1, “ec...

2019-05-06 10:11:16 394

转载 IMX6 Linux系统下串口丢包错包问题研究

IMX6芯片简介摘自互联网http://www.ic72.com/ZhanHui/2013-02-01/209182.html1. IMX6 soc 芯片架构图IMX6 SOC2. 串口的使用情况IMX6 SOC系列芯片有5个异步串口可以使用,可以用于连接蓝牙,单片机,GPS模块等等外围芯片。串口的作用,就像神经系统一样,连接各个器官。因此串口通信的稳定性,还是非常重要的。...

2019-05-05 22:13:55 568

转载 记一次linux下串口数据丢包解决过程

项目中两个芯片之间用串口进行通信,由于传输格式中有校验位,在数据量很大的时候总是校验失败。于是花了很长的时间最终解决了这个问题。首先串口丢数据有两种情况(明显排除发送端发送的数据不对),第一种是信道也就是串口线或者连接口不行,无法承受很高的波特率(我使用的波特率是921600),第二种就是接收端由于某种原因丢数据。通过观察我排除了第一种情况,因为如果是信道承受不了太高的波特率的话那平时的小段小...

2019-05-05 22:10:30 3328 1

转载 linux日志级别(loglevel)详解

inux日志级别(loglevel)详解前几天,我在想printk中到底是哪些信息会打印到console上,哪些东西可以通过dmesg来查看。参考了网上一些资料以及自己做的一些实,总结一下Linux中的console loglevel以及printk, dmesg知识。只有当printk打印信息时的loglevel小于console loglevel的值(优先级高于console...

2019-04-28 18:41:25 25232

转载 Linux系统CPU频率调整工具使用

Linux系统CPU频率调整工具使用现在的CPU耗电很大,按需调节CPU频率对普通桌面及移动设备节能有重要的意义,目前多数Linux发行版都已经默认启用了这个功能,但在一些像数据库,集群系统等特别需要CPU高性能的服务器环境中,Linux提供的这种对CPU频率调节的功能对CPU性能使用受到一些限制,不利于系统性能的更好发挥。为此需要Linux系统管理员进行必要相关参数优化及设置来确保CPU...

2019-04-28 09:46:42 820

空空如也

空空如也

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

TA关注的人

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