watchdog

【STM32H7教程】第44章 STM32H7的ADC基础知识和HAL库API

无人久伴 提交于 2021-02-10 06:31:31
完整教程下载地址: http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第44章 STM32H7的ADC基础知识和HAL库API 本章节为大家讲解ADC(Analog-to-digital converters,模数转换器),极具项目使用价值,因为STM32H7的ADC已经高达16位分辨率,支持3.6Msps采样率。 44.1 初学者重要提示 44.2 ADC基础知识 44.3 ADC的HAL库用法 44.4 源文件stm32h7xx_hal_adc.c 44.5 总结 44.1 初学者重要提示 STM32H7虽然支持差分,但不支持负压测量。 STM32H7的ADC采集通道体验快速通道Fast Channels和低速通道Slow Channels的区别,详情看本章2.12小节的电气特性。 STM32H7的ADC支持过采样,通过过采样技术可以做到26位分辨率。 ADC的专业术语诠释文档,推荐大家看看: http://www.armbbs.cn/forum.php?mod=viewthread&tid=89414 。 44.2 ADC基础知识 ADC的几个关键知识点放在开头说: STM32H7支持三路ADC,分别是ADC1,ADC2和ADC3。其中ADC1和ADC2可以组成双ADC模式,ADC3是独立的

重新精读《Java 编程思想》系列之向上转型与向下转型

…衆ロ難τιáo~ 提交于 2021-02-08 05:18:57
前言 今天重读了一下向上转型与向下转型,有些新的体会,了解了向上转型的好处,及如何向下转型。在此分享给大家。 向上转型 向上转型是用来表现新类和基类之间的关系。在传统中,由导出类转型成基类,在继承图中是向上移动的。因此称作向上转型。由于向上转型是从一个较专用类型向较通用类型转换,所以总是安全的。也就是说,导出类是基类的一个超集。它可能比基类含有更多的方法。但他必须具备基类中所含有的方法。 我们来看一个例子。 class Car { public void run() { System.out.println("这是父类run()方法"); } } public class Benz extends Car { public void run() { System.out.println("这是Benz的run()方法"); } public void price() { System.out.println("Benz:800000$"); } public static void main(String[] args) { Car car = new Benz(); car.run(); //car.price();程序报错 } } 运行后输出。这是Benz的run()方法。 但是当我们用car这个对象去调用Benz类中price这个方法时,就会报错。

syntax error near unexpected token `do' when run with sudo

雨燕双飞 提交于 2021-02-07 03:27:42
问题 From here: http://www.sat.dundee.ac.uk/psc/watchdog/watchdog-testing.html for n in $(seq 1 60); do echo $n; sleep 1; sync; done I get: :~$ sudo for n in $(seq 1 60); do echo $n; sleep 1; sync; done bash: syntax error near unexpected token `do' 回答1: The shell parses the command line and because for looks like an argument to sudo , you basically get a do without a for . To fix it, run the loop in a subshell, either as a separate script, or like this; sudo sh -c 'for n in $(seq 1 60); do echo "

syntax error near unexpected token `do' when run with sudo

痴心易碎 提交于 2021-02-07 03:21:40
问题 From here: http://www.sat.dundee.ac.uk/psc/watchdog/watchdog-testing.html for n in $(seq 1 60); do echo $n; sleep 1; sync; done I get: :~$ sudo for n in $(seq 1 60); do echo $n; sleep 1; sync; done bash: syntax error near unexpected token `do' 回答1: The shell parses the command line and because for looks like an argument to sudo , you basically get a do without a for . To fix it, run the loop in a subshell, either as a separate script, or like this; sudo sh -c 'for n in $(seq 1 60); do echo "

数据库pgpool-II 4.1.4 高可用集群之VIP漂移

て烟熏妆下的殇ゞ 提交于 2021-02-01 12:54:51
问题描述: 在一次部署PostgreSQL12.3流复制+pgpool-ii 4.1.4高可用集群的时候,遇到了很奇怪的vip漂移问题:PostgreSQL主库down掉后,vip不会漂移到备库,但是当我把主库启动后,vip反而漂移到了备库。 解决思路: 第一反应就是failover_stream.sh切换脚本有问题,于是手动执行了一下脚本,发现这个脚本只是用来切换PostgreSQL数据库主、备角色的,VIP并没有发生什么变化;期间参考了百度十几种方法和建议,都没有解决这个问题。最终,我在PostgreSQL官网找到了答案,与大家分享。 问题排查: 其实这个问题是pgpool-ii 4.1.4配置文件参数导致的,我看了网上很多的部署教程,在配置pgpool的时候都没有注意这个地方,如下: 3.1.vi进入pgpool配置文件pgpool.conf,找到以下部分; 修改如下: watchdog 发生故障后, 处理的相关配置(宕机, pgpool进程终止) #- Watchdog consensus settings for failover – failover_when_quorum_exists = on failover_require_consensus = on allow_multiple_failover_requests_from_node = on

四,移植uboot-支持NOR,NAND 操作

本小妞迷上赌 提交于 2021-01-12 08:30:28
文档时间:2018-08-11 交叉编译器:arm-linux-gcc-4.3.2 Ubuntu版本:16.04 uboot版本:2013.10 1,修改代码支持 nor flash 操作 前面章节已经实现NOR,NAND 启动,但是还不支持nor,nand flash 操作,如下图打印信息所示: Flash: *** failed ***,搜索发现,此段错误信息在第二阶段 board_init_r 函数中,此函数位于 arch/arm/lib/board.c 文件中,代码如下所示: #if !defined(CONFIG_SYS_NO_FLASH) puts( " Flash: " ); flash_size = flash_init(); if (flash_size > 0 ) { # ifdef CONFIG_SYS_FLASH_CHECKSUM print_size(flash_size, "" ); /* * Compute and print flash CRC if flashchecksum is set to 'y' * * NOTE: Maybe we should add some WATCHDOG_RESET()? XXX */ if (getenv_yesno( " flashchecksum " ) == 1 ) { printf( " CRC:

java cpu过高问题排查问题

陌路散爱 提交于 2021-01-11 03:10:49
top命令参数含义 top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 191272k total, 173656k used, 17616k free, 22052k buffers Swap: 192772k total, 0k used, 192772k free, 123988k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd 14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top 1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root RT 0 0 0 0 S

分析core,是从案发现场,推导案发经过

馋奶兔 提交于 2021-01-07 08:08:55
分析core不是一件容易的事情。试想,一个系统运行了很长一段时间,在这段时间里,系统会积累大量正常、甚至不正常的状态。这个时候如果系统突然出现了一个问题,那这个问题十有八九跟长时间积累下来的状态有关系。分析core,就是分析出问题时,系统产生的“快照”,追溯历史,找出问题发生源头。这有点像是从案发现场,推导案发经过一样。 soft lockup! 今天这个“案件”,我们从soft lockup说起。 soft lockup是内核实现的夯机自我诊断功能。这个功能的实现,和线程的优先级有关系。 这里我们假设有三个线程A、B、和C。他们的优先级关系是A<B<C。这意味着C优先于B执行,B优先于A执行。这个优先级关系,如果倒过来叙述,就会产生一个规则:如果C不能执行,那么B也没有办法执行,如果B不能执行,那基本上A也没法执行。 soft lockup实际上就是对这个规则的实现:soft lockup使用一个内核定时器(C线程),周期性地检查,watchdog(B线程)有没有正常运行。如果没有,那就意味着普通线程(A线程)也没有办法正常运行。这时内核定时器(C线程)会输出类似上图中的soft lockup记录,来告诉用户,卡在cpu上的,有问题的线程的信息。 具体到这个“案件”,卡在cpu上的线程是python,这个线程正在刷新tlb缓存。 老搭档ipi和tlb

Linux内核

我怕爱的太早我们不能终老 提交于 2020-12-23 19:05:09
今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。 在开始,我们先来看看这幅漫画的全貌! 这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。 地基 作为一个房子,最重要的莫过于其地基,在这个图片里,我们也从最下面的地基开始看起: 地基 地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着“文件”—— 电脑 中的文件。左上角,有一只胸前挂着 421 号牌的小企鹅,它表示着 PID(进程 IDProcess ID) 为 421 的进程,它正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。在右下角有一只小狗,它是 看门狗watchdog ,这代表对文件系统的监控。 一层(地面层) 一层(地面层) 看完了地基,接下来我们来看地基上面的一层,都有哪些东西。 进程表 这一层,最引人瞩目的莫过于中间的一块垫子,众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。 左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话——你看有好多走神、自顾自聊天的——“喂喂

服务器状态命令[1]

孤街浪徒 提交于 2020-12-19 07:45:32
在实际工作中,我们需要经常查看服务器状态。今天介绍整体负载的top命令 1,命令 top 结果 top - 21:07:59 up 6 days, 10:46, 1 user, load average: 0.37, 0.38, 0.56 Tasks: 381 total, 1 running, 299 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.6 us, 0.4 sy, 0.0 ni, 98.4 id, 0.5 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 4015920 total, 115064 free, 3340540 used, 560316 buff/cache KiB Swap: 998396 total, 20 free, 998376 used. 137916 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 62357 c80k2 20 0 1435920 147120 13608 S 1.7 3.7 30:50.58 compiz 1474 root 20 0 1875244 8748 0 S 0.3 0.2 6:02.49 vmhgfs-fuse 14359 c80k2 20 0 5121044 1.258g