watchdog

centos7部署postgresql集群高可用 patroni + etcd 之patroni篇

倾然丶 夕夏残阳落幕 提交于 2020-12-05 06:59:09
实验环境:centos7.4纯净版 postgres版本: 9.6.15 etcd版本:3.3.11 patroni版本:1.6.0 patroni介绍可参考:https://github.com/zalando/patroni ip规划 192.168.216.130 node1 master 192.168.216.132 node2 slave 192.168.216.134 node3 slave etcd集群部署请看上一篇文章:https://www.cnblogs.com/caidingyu/p/11408389.html postgres部署参考文章:https://www.cnblogs.com/virtulreal/p/9921978.html 修改node1中postgresql.conf配置如下 max_connections = '100' max_wal_senders = '10' port = '5432' listen_addresses = '0.0.0.0' synchronous_commit = on full_page_writes = on wal_log_hints = on synchronous_standby_names = '*' max_replication_slots = 10 wal_level = replica

Disabling the STM32 IWDG during debugging

拥有回忆 提交于 2020-11-30 12:55:53
问题 I have a ChibiOS 3.x program on a STM32F4 microcontroller where I use the IWDG watchdog to reset the MCU on errors like this: int main() { iwdgInit(); iwdgStart(&IWDGD, &wd_cfg); while(true) { // ... do stuff } } If I now attach my debugger and, at any point, stop the program (manually or via a breakpoint), the microcontroller will reset after the timeout defined by the watchdog configuration (and therefore cause issues in my debugging process) How can I disable this behaviour, i.e. how can I

Disabling the STM32 IWDG during debugging

白昼怎懂夜的黑 提交于 2020-11-30 12:54:26
问题 I have a ChibiOS 3.x program on a STM32F4 microcontroller where I use the IWDG watchdog to reset the MCU on errors like this: int main() { iwdgInit(); iwdgStart(&IWDGD, &wd_cfg); while(true) { // ... do stuff } } If I now attach my debugger and, at any point, stop the program (manually or via a breakpoint), the microcontroller will reset after the timeout defined by the watchdog configuration (and therefore cause issues in my debugging process) How can I disable this behaviour, i.e. how can I

Disabling the STM32 IWDG during debugging

不想你离开。 提交于 2020-11-30 12:52:26
问题 I have a ChibiOS 3.x program on a STM32F4 microcontroller where I use the IWDG watchdog to reset the MCU on errors like this: int main() { iwdgInit(); iwdgStart(&IWDGD, &wd_cfg); while(true) { // ... do stuff } } If I now attach my debugger and, at any point, stop the program (manually or via a breakpoint), the microcontroller will reset after the timeout defined by the watchdog configuration (and therefore cause issues in my debugging process) How can I disable this behaviour, i.e. how can I

(好文重发)朴英敏:用crash工具分析Linux内核死锁的一次实战

老子叫甜甜 提交于 2020-11-28 08:42:11
原创 朴英敏 Linux阅码场 2019-12-18 本文简介 : 内核死锁问题一般是读写锁(rw_semaphore)和互斥锁(mutex)引起的,本文主要讲如何通过ramdump+crash工具来分析这类死锁问题。 作者简介 : 朴英敏,现就职于国内一家手机研发公司,任职资深系统工程师,主要负责安卓系统方面的调试工作。 0、背景知识点 ramdump是内存转存机制,我们可以在某个时刻把系统的内存转存到一个文件中,然后与符号信息(vmlinux)一起导入到trace32或crash等内存分析工具中做离线分析。是分析崩溃、死锁、内存泄露等内核疑难问题的重要调试手段。 crash是用于解析ramdump的开源工具( http://people.redhat.com/anderson/),是命令行式的交互模式,提供诸多功能强大的调试命令,是分析定位内核复杂问题的利器 。 死锁是指两个或两个以上的执行流在执行过程中,由于竞争锁资源而造成的一种阻塞的现象。如图: 1、问题描述 在Android7.1系统中跑monkey时出现界面卡死现象: 1)没有任何刷新,所有输入事件无效,包括电源键 2)watchdog没有重启system_server 3)可以连adb,但ps等调试命令卡住 2、初步分析 由于无法直接用adb调试,用长按电源键的方式进入dump模式并导出ramdump文件

(好文重发)朴英敏:用crash工具分析Linux内核死锁的一次实战

只谈情不闲聊 提交于 2020-11-28 08:39:27
原创 朴英敏 Linux阅码场 2019-12-18 本文简介 : 内核死锁问题一般是读写锁(rw_semaphore)和互斥锁(mutex)引起的,本文主要讲如何通过ramdump+crash工具来分析这类死锁问题。 作者简介 : 朴英敏,现就职于国内一家手机研发公司,任职资深系统工程师,主要负责安卓系统方面的调试工作。 0、背景知识点 ramdump是内存转存机制,我们可以在某个时刻把系统的内存转存到一个文件中,然后与符号信息(vmlinux)一起导入到trace32或crash等内存分析工具中做离线分析。是分析崩溃、死锁、内存泄露等内核疑难问题的重要调试手段。 crash是用于解析ramdump的开源工具( http://people.redhat.com/anderson/),是命令行式的交互模式,提供诸多功能强大的调试命令,是分析定位内核复杂问题的利器 。 死锁是指两个或两个以上的执行流在执行过程中,由于竞争锁资源而造成的一种阻塞的现象。如图: 1、问题描述 在Android7.1系统中跑monkey时出现界面卡死现象: 1)没有任何刷新,所有输入事件无效,包括电源键 2)watchdog没有重启system_server 3)可以连adb,但ps等调试命令卡住 2、初步分析 由于无法直接用adb调试,用长按电源键的方式进入dump模式并导出ramdump文件

CircuitPython 6.0.0发布了

余生长醉 提交于 2020-11-20 14:57:59
CircuitPython 6.0.0正式版本已经发布。 移植情况 CircuitPython有许多 "移植",是各种微控制器系列的核心实现。每个移植版本的稳定性各不相同。截至本版本,F4系列的atmel-samd, nrf和stm32是稳定的。cxd56, esp32s2和stm其它型号正在积极改进,但可能会有功能缺失和bug,litex和mimxrt10xx处于alpha状态,会有bug和功能缺失。 从5.x开始的主要新功能和改进 新增ESP32-S2芯片的移植。 RGBMatrix 显示支持。 countio 模块以计数脉冲。 watchdog控制硬件看门狗定时器。仅在某些芯片上。 vectorio提供原始displayio。 canio 为CAN总线操作提供支持。 _bleio 增加了对基于HCI的BLE协处理器(如AirLift板)的支持。 aesio 提供对AES计算的支持。 async/await默认在许多版本中可用;支持得到改善。 网络模块进行了改造,增加了 wifi、socketpool、ssl 等模块。停用了 socket、wiznet5k 和network 模块。它们将在 7.x 中被移除,转而使用网络库。 更新stage和pew库。 _pixelbuf 改进。 改进的USB串口检测。 json 现在可以从流对象读取。 pulseio.PWMOut 被拆分到

apache反向转发

≯℡__Kan透↙ 提交于 2020-11-03 09:57:21
apache反向代理主要用来做负载均衡,BalancerMember参数loadfactor可设置对应权重;现在要实现的功能是一台应用服务器一个端口根据url转发到不同的地址,也用到了反向代理: 当前开发环境:xampp7.3.6 1)apache开启module支持: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so LoadModule

Camera系统之ISP综述

左心房为你撑大大i 提交于 2020-10-15 05:04:53
1.ISP位置 ISP(Image Signal Processor),即图像信号处理器,用于处理图像信号传感器输出的图像信号。它在相机系统中占有核心主导的地位,是构成相机的重要设备。 主要内部构成 如下图所示,ISP 内部包含 CPU、SUP IP、IF 等设备,事实上,可以认为 ISP 是一个 SOC,可以运行各种算法程序,实时处理图像信号。 ISP 架构 CPU CPU 即中央处理器,可以运行 AF、LSC 等各种图像处理算法,控制外围设备。现代的 ISP 内部的 CPU 一般都是 ARM Cortex-A 系列的,例如 Cortex-A5、Cortex-A7。 SUB IP SUB IP 是各种功能模块的通称,对图像进行各自专业的处理。常见的 SUB IP 如 DIS、CSC、VRA 等。 图像传输接口 图像传输接口主要分两种,并口 ITU 和串口 CSI。CSI 是 MIPI CSI 的简称,鉴于 MIPI CSI 的诸多优点,在手机相机领域,已经广泛使用 MIPI-CSI 接口传输图像数据和各种自定义数据。外置 ISP 一般包含 MIPI-CSIS 和 MIPI-CSIM 两个接口。内置 ISP 一般只需要 MIPI-CSIS 接口。 通用外围设备 通用外围设备指 I2C、SPI、PWM、UART、WATCHDOG 等。ISP 中包含 I2C 控制器,用于读取 OTP

阻塞式编程和非阻塞式编程区别

放肆的年华 提交于 2020-10-08 13:57:38
很多单片机的初学者容易掉入阻塞式编程的陷阱.因为阻塞式编程符合我们对现实世界的理解,一个人在一段时间内,只能做一件事情.例如要是实现1Hz的闪灯程序,那么先让单片机端口拉高500ms,然后再拉低500ms,然后循环.因为等待时间太长了,没有打开看门狗. 下面是阻塞式编程的例子: #include "extern.h" /*端口定义*/ BIT LED : PA.3; BIT LED1 : PA.4; /*相应于main函数*/ void FPPA0 (void) { /*单片机内部RC震动时钟为 IHRC默认为16M,因此,IHRC/2=8M,系统时钟为8M*/ .ADJUST_IC SYSCLK=IHRC/2 /*端口设置为输出 低*/ $ LED out ,low; $ LED1 out ,low; /*主循环*/ while (1) { /*端口置高*/ LED=1; /*延时单位1T(1个时钟周期),延时8000=1ms,一共延时500ms*/ .delay 8000*500; /*端口置低*/ LED=0; /*延时500ms*/ .delay 8000*500; } } OK 完美运行. 但是,当要你再加上一个指示灯,要2Hz闪烁,也就是250ms关,250ms开,然后循环,那要怎么办了. OK继续,刚刚辛辛苦苦写好的程序得重新写了. /*相应于main函数*/