看门狗是linux驱动的一个重要环节。某些特殊的设备,有时候需要放在一些环境恶劣的地方,比如电信设备。但是,任何软件都不可能100%没有bug。...如何保证软件在遇到严重bug、死机的时候也能正常运行呢,那么看门狗就是有效的一种方法。看门狗一般要求用户定时喂狗,如果一段时间没有喂狗的话,那么系统就会自动重启。...今天,我们就来看看这个看门狗驱动怎么编写?
文章目录 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2 删除不使用的驱动 2.3.3 修改内核源代码 2.3.3.1...系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。...对于大尺寸的裁剪效果往往比小尺寸的裁剪效果明显,比如rootfs裁剪1M可能很容易,对于uboot来说,则非常困难。 因此,后续主要介绍kernel以及rootfs的裁剪。...2.3 内核裁剪 通常关于Linux内核裁剪主要有如下方法: 删除不使用的功能。如符号表、打印、调试等功能。 删除不使用的驱动。 修改内核源代码。 内核压缩。...Building Embedded Linux Systems [M] [3] Michael Opdenacker.
一晃20多年过去了,Linux 已经有了太大的变化,内核裁剪的技术和方式也有了较大的不同。...Linux 的内核裁剪是为了减少目标应用中不需要的内核代码,在安全性和高性能(快速启动时间和减少内存占用)方面有着显著的好处。但是,现有的内核裁剪技术有其局限性,有没有内核裁剪的框架化方法呢?...关于内核裁剪 近年来,Linux操作系统在复杂性和规模上都在增长。然而,一个应用程序通常只需要一部分 OS 功能,众多的应用需求导致了Linux内核的膨胀。...小结 由于操作系统内核的不稳定性、时效性较差、完整性问题以及需要人工干预等原因,Linux内核裁剪技术没有得到广泛的应用。...了解了现有技术的局限性,尝试提出一个Linux内核裁剪框架,或许可以解决这些问题。
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。...窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。...图1 窗口看门狗的 上窗口就是配置寄存器WWDG->CFR里设定的W[6:0]; 下窗口是固定的0x40; 当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。...当外部中断发生(按下PA0按键),长时间不喂狗,引发窗口看门狗复位。 直接操作寄存器 相关寄存器如下: 控制寄存器WWDG->CR:低8位有效。 第8位为WDGA,看门狗激活位。...RCC_Configuration(); /* GPIO configuration ——————————————————*/ GPIO_Configuration(); /*注释-hope:利用窗口看门狗的提前唤醒中断服务子程序来进行独立看门狗计数值的
在正式的产品开发中,软件中要加入看门狗,以确保系统安全和软件跑飞后可以复位到安全状态,最近一直在用NXP的K64,所以今天就以K64为例来说明,软件看门狗的使用。...首先像学其他外设一样先来看K64看门狗的框图 ? 由图就可以清楚的搞清楚他的工作流程和软件操作思路,在结合SDK的帮助,你 就可以轻松上手。...别忘了使能,其中比较重要的一点是配置时钟和看门狗定时器的值,从上图中就可以看出K64的看门狗模块由两种时钟可选,我比较喜欢用LPO时钟1kHz。...这样计算看门狗时间例如为2秒的喂狗周期,则timeoutValue 应为2000,如下图所示: ? 如果由多任务还要考虑在多个地方清狗。 喂狗可以直接使用SDK的喂狗函数 ?...注释掉喂狗程序和注释掉清狗程序一样都会引起复位,且测试方法相同,至此验证了我们的软件看门狗功能符合设计需求。
为什么工业级无线路由器这么重视软硬件看门狗,今天我们就来看看软硬件看门狗区别。...工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。...所以在使用有看门狗的芯片时要注意清看门狗。...4) 初始化:硬件看门狗上电后收到第一个喂狗脉冲就完成了初始化,软件看门狗则需要配置相关的寄存器(或者调用相关的看门狗子程序)。...软件和硬件的看门狗的最主要差异在于开启看门狗的时机,软件看门狗必须初始化(配置)看门狗才能使用,如果软件看门狗是厂商提供的SDK中的一个API接口,开发者又没有能力修改底层的uboot、内核,无法在uboot
为什么要裁剪内核? ...USB-based Watchdog Cards(基于usb的看门狗卡) 如下图所示,这个看门狗卡很少用到,所以去掉CONFIG_SSB_POSSIBLE ? ...USB-based Watchdog Cards(基于usb的看门狗卡) Sonics Silicon Backplane (Sonics公司下的Silicon底板) 如下图所示,这个公司的产品没有用到...-3.4.2 linux-3.4.2_new //更改文件名 tar -xjf linux-3.4.2.tar.bz2 //解压需要比较的源文件 diff -urN linux...-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch
一、独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。...看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。..._t Reload); //设置 IWDG 重装载值 设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间 (也就是看门狗溢出时间) ,该时间的计算方式为: Tout=((4×2^prer...) ×rlr) /40 其中 Tout 为看门狗溢出时间(单位为 ms) ;prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值) ;...4) 启动看门狗(向 IWDG_KR 写入 0XCCCC) 库函数里面启动独立看门狗的函数是: IWDG_Enable(); //使能 IWDG 通过这句,来启动 STM32 的看门狗。
是这种,客户须要做一个图片上传的功能,这个图片须要裁剪。一般而言,这东西用系统自带的裁剪就搞定了。但是客户不,他要能够自由裁剪,就是长宽比不固定,想裁成什么比例就裁成什么比例,我一听,蛋都碎了。 ...图片裁剪的功能系统自带了,和我的需求仅仅有一点不一样,就是它是固定宽高比的,设定了宽高比就不能再改变,而我须要自由宽高比。好吧,既然仅仅有这一点不一样,那给他改改即可了。 ...但是找了一圈,仅仅有一个哥哥自己写了一个自己定义裁剪的功能。跑了一下,基本功能能够实现,但是太Ugly了,并且不太稳定,有一些适配没有做好。想想还是自己改源代码好了,嗯,就这样。 ...下载gallery的源代码,抽取裁剪功能的代码,如图 这基本就好了,然后CropImage.java里面有叉叉,自己改下就好了。...然后怎么让他自由裁剪呢,看下mAspectX变量的使用,源代码里面用mAspectX和mAspectY来做宽高比计算的,我们就把他计算宽高比的地方凝视掉就好了。
文章目录 Tina_Linux_系统裁剪_开发指南 1 概述 2 Tina系统裁剪简介 2.1 boot0裁剪 2.2 uboot裁剪 2.3 内核裁剪 2.3.1 删除不使用的功能 2.3.2...Tina_Linux_系统裁剪_开发指南 1 概述 编写目的: 嵌入式产品往往为了压缩成本而使用较小的flash存储器,因此可能需要对系统进行裁剪来减少对flash的占用。...系统经过裁剪过后,通常也会提升启动速度以及减少内存占用。 本文介绍TinaLinux中系统裁剪的方法,为有裁剪需求的使用者提供参考。...对于大尺寸的裁剪效果往往比小尺寸的裁剪效果明显,比如rootfs裁剪1M可能很容易,对于uboot来说,则非常困难。 因此,后续主要介绍kernel以及rootfs的裁剪。...2.3 内核裁剪 通常关于Linux内核裁剪主要有如下方法: 删除不使用的功能。如符号表、打印、调试等功能。 删除不使用的驱动。 修改内核源代码。 内核压缩。
简书链接:https://www.jianshu.com/p/8c6508cab763 有时候想对摄像头采集的视频流进行区域裁剪,可以使用libyuv这个库,原理就是先把NV12转换为i420,对i420...做裁剪,然后再把i420转换为NV12,NV12再转换为CVPixelBufferRef,CVPixelBufferRef再转换为CMSampleBufferRef。...关于步长解释:https://www.jianshu.com/p/eace8c08b169 一:对NV12裁剪代码如下: + (CVPixelBufferRef)convertNV12ToI420Screenshots...buffer_height || screenshots_y + screenshots_hight > buffer_height) { return nil; } // 1.NV12数据进行相应的裁剪...2: 其实这个方法更多的是介绍怎么把i420进行裁剪。
前言: 今天我们来学习看门狗的配置与函数,看门狗可以有效解决程序的跑飞,在使用过程中比较常见,是防止芯片故障的有效外设,我们一起来学习下HAL库 STM32CubeMX的独立看门狗,窗口看门狗的使用...独立看门狗,靠窗看门狗 工作原理 看门狗 在由单片机构成的微型计算机系统中单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环;或者因为用户配置代码出现BUG,导致芯片无法正常工作...两个看门狗设备(独立看门狗、窗口看门狗)可以用来检测和解决由软件错误引起的故障。当计数器达到给定的超时值时,触发一个中断(仅适用窗口看门狗)或者产生系统复位。...窗口看门狗由从APB1时钟(36MHz)分频后得到时钟驱动。通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。 窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。...举例: HAL_IWDG_Refresh(&hiwdg); //看门狗喂狗 使用该函数定时喂狗即可 WWDG-窗口看门狗 窗口看门狗的定义 窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下递减计数
在本教程中,我将演示如何在 GIMP 中快速裁剪图像而又不影响精度。让我们一起来看看吧。 如何在 GIMP 中裁剪图像 方法 1 裁剪只是一种将图像修整成比原始图像更小区域的操作。...裁剪图像的过程很简单。...你可以通过“工具”面板访问“裁剪工具”,如下所示: image.png 你还可以通过菜单访问裁剪工具:“ 工具 → 变形工具 → 裁剪(Tools → Transform Tools → Crop)”...选定完区域后,你只需按键盘上的回车键即可进行裁剪。 如果你想重新开始或者不裁剪,你可以按键盘上的 Esc 键。...然后,你可以使用与“裁剪工具”相同的方式高亮选区,并调整选区。选择好后,可以通过以下方式裁剪图像来适应选区:“ 图像 → 裁剪为选区(Image → Crop to Selection)”。
这个类实现了程序退出能重启,但是程序停止运行弹出对话框,进程并没有退出却无法重启。希望有好建议处理这个bug的朋友提出你们的宝贵意见。 源码如下:
/*此程序实现单片机”看门狗”WDT的功能*/ #include”p18f458.h” unsignedlongi; /*系统初始化子程序*/ voidinitial() { TRISD = 0X00...口设为输出*/ } /*延时子程序*/ voidDELAY() { for(i=19999;–i;) continue; } /*主程序*/ main () { initial();/*初始化,设定看门狗的相关寄存器...0X00;/*D口送00H,发光二极管亮*/ DELAY();/*给予一定时间的延时*/ PORTD = 0XFF;/*D口送FFH,发光二极管灭*/ while(1) { ; }/*死循环,等待看门狗溢出复位...*/ } ——————-汇编语言版本的单片机看门狗程序—————- ;此程序实现”看门狗”WDT的功能 ;此单片机看门狗由http://www.51hei.com独家提供 LISTP=18F458 INCLUDE...MOVLW0X00 MOVWFPORTD;D口送00H,发光二极管亮 CALLDELAY MOVLW0XFF MOVWFPORTD;D口送FFH,发光二极管灭 LOOP GOTOLOOP;死循环,等待看门狗复位
为了避免应用陷入错误状态导致界面无响应,Apple 设计了看门狗 (WatchDog) 机制。一旦超时,强制杀死进程。...8badf00d = ate bad food,大概是在说看门狗吃了坏的食物所以暴走了?!异常记录则表示这并不是一次崩溃(邪魅一笑:强制退出而已)。信息一栏指出时间限制为 20 s。...同步网络请求,主线程,超长超时时间,满足这三点,一定场景下几乎必然会触发看门狗机制。 对策 合理解决方案: 异步网络请求:优点很多,最重要的是可以让你无忧无虑安全地访问网络,而无需担心线程。...此外,一部分情况下,例如这次遇到登录和模版同步时触发看门狗,事实上,即使在运用到模版时再次请求也是勉强可行的,因此姑且先跳过网络请求也可以。...应用的网络部分基于公司的通用框架,因此优先考虑在非主线程中进行网络请求来避免触发看门狗。 至于调试模式下为什么可以正常启动应用,完全是因为该模式下看门狗机制处于禁用状态。
im.convert('P')#将当前图像转换为P模式 print(im.info) print(im.palette) box=(60,10,140,110) region=new_im.crop(box)#图像裁剪...im.show() region.show() PNG (460, 460) RGB {'srgb': 0, 'gamma': 0.45455, 'dpi': (96, 96)} None 算法:图像裁剪在通常情况下是指图像规则分幅裁剪...,裁剪图像的边界范围是一个矩形,通过左上角和右下角两点的坐标,确定图像的裁剪位置。...在实际工作中,经常需要根据研究工作要求对图像进行裁剪,按照实际图像分幅裁剪的过程图像分幅裁剪分为两种类型:规则分幅裁剪,不规则分幅裁剪。从当前的图像中返回一个矩形区域的拷贝。
/patch-ker.sh c m /work/system/linux-3.4.2//c:将yffs2文件夹copy到linux-3.4.2/fs里, m:指定多版本 /*通过menuconfig...5.内核裁剪 为什么要裁剪内核?...2) USB-based Watchdog Cards(基于usb的看门狗卡) 如下图所示,这个看门狗卡很少用到,所以去掉CONFIG_SSB_POSSIBLE ?...mv linux-3.4.2 linux-3.4.2_new //更改文件名 tar -xjf linux-3.4.2.tar.bz2 //解压需要比较的源文件 diff...-urN linux-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch 未完待续,下章来移植以前
领取专属 10元无门槛券
手把手带您无忧上云