本文转载自:http://blog.csdn.net/wealoong/article/details/7566546#t0 参考  : ARM Linux 中断机制分析.pdf linux-2.6.26内核中ARM中断实现详解(1) 一.中断注册方法 在Linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义: int request_irq(unsigned int irq, irq_handler_t handler,     …
一.中断注册方法 在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义: int request_irq(unsigned int irq, irq_handler_t handler,                         unsigned long irqflags, const char *devname, void *dev_id) irq是要申请的硬件中断号. handler是向系统注册的中断处理函数,是一个…
@2019-04-09 [问题] 控制程序工作一段时间异常重启 [分析] 经定位分析重启原因为看门狗复位导致 [解决] 经排查发现在中断服务函数中使用了FreeRTOS的系统时延函数vTaskDelay,调试发现进入vTaskDelay函数后,会在函数xTaskResumeAll中进入临界段函数, 进而发现程序会卡死在下面代码处: ) { configASSERT( ( portNVIC_INT_CTRL_REG & portVECTACTIVE_MASK ) == ); } 上边代码表示发生一…
今天在看stm32的中断,一时间不理解stm32主函数是如何进入中断函数的,按C编程的理解,会有个特定的入口之类的,但是看demo过程中没有发现入口. 以串口中断服务函数void USART1_IRQHandler(void) 为例,首先用到串口中断,需要先设定串口中断初始化以及串口初始化,另外void USART1_IRQHandler(void) 中断服务函数也应该写好. 发现在stm32的启动文件startup_stm32f10x_md.s中写到  DCD USART1_IRQHandle…
用了好久的FreeRTOS以前只是知道,如果在中断服务程序中调用某一些FreeRTOS的API函数时需要注意,如果有ISR版本的一定要调用末尾带ISR的函数,并且中断服务程序要调用freeRTOS的API接口则中断优先级不能高于配置宏(configMAX_SYSCALL_INTERRUPT_PRIORITY)的值这又是为什么呢? 刚好今天受台风只能在家里窝着,所以就想着趁有时间看看这一部分的内容,研究一下为什么,那么废话不多说开干. 找了几个函数简化一些安全检查的内容再把一些宏函数替换后对比观察…
你打开stm32的启动文件,例如startup_stm32f10x_hd.s 里面有很多中断跳转的入口.用白话说就是固件库帮你写好了发生什么中断时跳转到哪里,这些名字是一个函数名,你要把这些函数写出来,然后中断来了stm32就跳到这样函数名的函数里面来.这些函数不一定要放到stm32f10x_it.c这个文件里,随便在哪个 .c 文件中都行,固件库都搞到这个stm32f10x_it.c文件里是为了方便统一管理吧.中断无需声明,没有返回值.下面举几个例子,希望对你有用! DCD EXTI0_IRQ…
__asm void xPortPendSVHandler( void ) { extern uxCriticalNesting; extern pxCurrentTCB; extern vTaskSwitchContext; PRESERVE8 //栈的8字节对齐 mrs r0, psp //读取当前psp进程指针,存入r0 isb /* 获取当前任务控制块 */ ldr r3, =pxCurrentTCB //把当前任务控制块的指针给r3 ldr r2, [r3] //把r3地址中的值给r2…
本文转载自:http://blog.sina.com.cn/s/blog_a6559d9201015vx9.htmlG #include <linux/gpio.h> // 标准 GPIO_API    int gpio_request(unsigned gpio, const char *label); 获得并占有 GPIO port 的使用权,由参数 gpio 指定具体 port,非空的lables指针有助于诊断.主要是告诉内核这地址被占用了.当其它地方调用同一地址的gpio_reques…
序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果.服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用.然我们自己动手从0开始写一个rpc功能以及实现服务注册,动态上下线,服务路由,负载均衡. RPC即远程过程调用,它的实现方式有很多,比如webservice等.框架调多了,烦了,没激情了,我们就该问自己,这些框架的作用到底是什么,来找回当初的激情. 一般来说,我们写的系统就是一个单机系统,一个web服务器一个数据库服务,但是当这单台服务器的处…
CM3 内核支持256 个中断,其中包含了16 个内核中断和240 个外部中断,并且具有256 级的可编程中断设置.但STM32 并没有使用CM3 内核的全部东西,而是只用了它的一部分. STM32 有76 个中断,包括16 个内核中断和60 个可屏蔽中断,具有16 级可编程的中断优先级. 而我们常用的就是这60 个可屏蔽中断,所以我们就只针对这60 个可屏蔽中断进行介绍. 在 MDK 内,与NVIC 相关的寄存器,MDK 为其定义了如下的结构体: typedef struct { vu32 I…
操作步骤: 1.在“开始 ”→“运行 ”中输入cmd 命令,进入MS-DOS界面 2.cd 到tomcat的bin目录下       C:/> cd tomcat/bin 3.运行命令service install, 就可以把tomcat注册成系统服务了       c:/tomcat/bin> service install 运行命令service uninstall,就可以删除服务.       c:/tomcat/bin> service uninstall 当然,这样注册出来的服…
遍历注册表回调函数(仿PCHunter CmpBack) typedef struct _CAPTURE_REGISTRY_MANAGER { PDEVICE_OBJECT deviceObject; BOOLEAN bReady; LARGE_INTEGER  registryCallbackCookie; LIST_ENTRY lQueuedRegistryEvents; KTIMER connectionCheckerTimer; KDPC connectionCheckerFunctio…
SpringCloud+Consul 服务注册与服务发现 1. 服务注册: 在Spring.factories有一段: # Discovery Client Configuration org.springframework.cloud.client.discovery.EnableDiscoveryClient=\ org.springframework.cloud.consul.discovery.ConsulDiscoveryClientConfiguration 这是SpringClou…
将mysql 注册为服务: ->mysqld --install 卸载服务: ->mysqld --remove 命令行启动mysql: ->net start mysql 命令行关闭mysql: ->net stop mysql…
使用java service wrapper将java程序注册为windows服务 分类:Java (5677)  (8) 将java注册为windows服务后,我们就直接可以通过windows的服务来启动和关闭java程序了. 1. 下载java service wrapper 网址:http://sourceforge.net/projects/wrapper/ 或者 http://wrapper.tanukisoftware.com/doc/english/download.jsp 我下载…
类似于TaobaoProtect.exe是由TBSecSvc服务启动的 http://stackoverflow.com/questions/3582108/create-windows-service-from-executable# You can use sc.exe (required when using Powershell): sc create <new_service_name> binPath= "<path_to_the_executable>&qu…
非安装版tomcat下载后,在bin文件夹会有一个startup.bat文件,运行该文件即可启动tomcat了.不过在服务器配置tomcat的话,就通常需要注册为服务. 在/bin文件下还有tomcat7.exe和tomcat7w.exe的文件,直接打开的话一闪而过或者提示错误,这是因为还没有配置服务. 打开cmd,切换到/bin目录下,输入以下命令: service.bat install 这样就在系统中注册了一个名为tomcat7的服务,这时就可以就可以通过服务开启动tomcat了.…
近来做项目,需要jboss定期重新启动.不想再看到jboss启动那个黑洞洞的窗口,就想着把它注册为服务,然后在net start.恰好objectweb上有个open source的javaservice,能够实现将jboss,tomcat注册为服务的功能,呵呵,得来全不费功夫,以下是配置步骤.有需要的朋友看好了..第一步: 到http://javaservice.objectweb.org/ 网站上下载javaservice,我用的是2.0.10.下载后解包到任意目录,如d:/javaserv…
Windows 程序注册成服务的方法 将windows 程序注册成服务这个是很多后台程序需要实现的功能,注册成服务后,你的程序就可以像windows 服务一样随系统启动,并且隐藏你的控制台界面.下面介绍一个网上流传最广泛的方法.就是Instsrv.exe + Srvany.exe . srvany.exe是什么?srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srvany只是其注…
SpringBoot注册Windows服务和启动报错的原因 Windows系统启动Java程序会弹出黑窗口.黑窗口有几点不好.首先它不美观:其次容易误点导致程序关闭:但最让我匪夷所思的是:将鼠标光标选中黑窗口日志信息,程序竟然不会继续执行,日志也不会继续输出.从而导致页面一直处于请求状态.回车后程序才能正常执行.同时客户希望我们能部署在Windows系统上并且做到开机自动启动.针对以上需求将系统程序注册成Windows服务变得尤为重要. 针对于SpringBoot程序,目前主流的方法是采用win…
在上一篇的初识SpringCloud微服务中,我们简单讲解到服务的提供者与消费者,当服务多了之后,会存在依赖与管理之间混乱的问题,以及需要对外暴露自己的地址,为了解决此等问题,我们学习Eureka注册中心.   Eureka注册中心 1.认识Eureka 首先我们来解决第一问题,服务的管理. 问题分析 在刚才的案例中,user-service对外提供服务,需要对外暴露自己的地址.而consumer(调用者)需要记录服务提供者的地址.将来地址出现变更,还需要及时更新.这在服务较少的时候并不觉得有什…
1.首先从官方网站下载Consul,因为我们是使用的Windows系统,所以选择windows版本 https://www.consul.io/downloads.html 2.可以用开发者模式来启动Consul 3.打开VS code创建一个web api程序,命令为dotnet new webapi 然后创建一个web api controller,后续会把这个服务接口注册到consul 4,在startup.cs类中实现服务注册和销毁 其中服务健康监测的服务设置如下,只做举例,没有具体逻辑…
Eureka是SpringCloud Netflix的子模块之一,用于云端的服务发现,服务定位,实现云端中间层服务发现和故障转移.服务注册与发现对于微服务系统来说十分的重要,有了服务注册与发现,就省去了每天改服务调用的配置文件的麻烦.你只需要使用服务的标识符,就是可使用服务.它的功能类似与dubbo的注册中心. 服务发现:服务发现是微服务基础架构的关键原则之一,Eureka是Netflix服务发现的一种服务和客户端.这种服务是可以被高可用性配置的和部署,并且在注册的服务当中,每个服务的状态可以互…
参考文献: tomcat注册成windows服务 背景 当前项目需要运行两个Tomcat,每次启动系统以后都要手动进入到tomcat目录执行startup.bat,非常烦,所以想将这两个tomcat直接注册为服务,这样开机就能够启动.这两个Tomcat安装路径如下: D:\app\Tomcat1 D:\app\Tomcat2 主要tomcat为windows服务的方法是先进入到tomcat的bin如入下,然后输入: service.bat install '服务名' //如果服务名有空格隔开,则…
前言 安装完SharePoint 2016工作流环境,本来以为万事大吉了,结果给站点注册的时候报错了.搜了很多文章,发现后面要加上-Force参数. 错误截图 使用的为站点注册工作流服务的PowerShell命令,需要在SharePoint命令行工具中执行. Register-SPWorkflowService –SPSite "http://sp2016/sites/demo/" –WorkflowHostUri "http://sp2016:12291" –Al…
上篇文章讲解了SpringCloud组件和概念介绍,接下来讲解一下SpringCloud组件相关组件使用.原理和每个组件的作用的,它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon),Archaius,Turbine等  今天学习的是Eureka即注册中心 一:Eureka简介 Eureka是Spring Cloud Netflix的一个子模块,也是核心模块之一.用于云端服务发现,一个基于REST的服务,用于定位服务,以实…
一.为什么要注册windows服务 mongodb启动比较麻烦,每次都要cmd去开启.注册windows服务,可以设置开机启动,比较友好. 二.如何注册windows服务 1.安装mongodb 2.在F盘新建文件夹: f:\mongodb\data      --用来存放数据 f:\mongodb\logs       --用来存放日志 3.指定数据库路径 运行cmd 切到mongodb的bin路径(假设F:\mongodb) F:\mongodb\bin>mongod --dbpath=f:…
上篇文章讲解了SpringCloud组件和概念介绍,接下来讲解一下SpringCloud组件相关组件使用.原理和每个组件的作用的,它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon),Archaius,Turbine等  今天学习的是Eureka即注册中心 一:Eureka简介 Eureka是Spring Cloud Netflix的一个子模块,也是核心模块之一.用于云端服务发现,一个基于REST的服务,用于定位服务,以实…
目录 1.环境介绍 2.服务提供 2.1 创建工程 2.2 修改配置文件 2.3 修改启动文件 2.5 亲测注意事项 3.服务调用 3.1 创建工程 3.2 修改配置文件 3.3 修改启动文件 3.4 创建第一个微服务调用 4.结语 1.环境介绍 接上一篇(SpringCloud实战之初级入门(一)- eureka注册中心),我们讲到了注册中心的高可用,集群,这篇我们讲如何服务如何注册在eureka上,如何使用Feign调用服务. 继续使用上一篇的文章中的mirco-service-eureka…
一.Eureka简介 spring Cloud Netflix技术栈中,Eureka作为服务注册中心对整个微服务架构起着最核心的整合作用.有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务.他的功能类似于dubbo的注册中心(register). 服务发现:服务发现是微服务基础架构的关键原则之一.试图着手配置每个客户端或某种格式的约定可以说是非常困难的和非常脆弱的.Eureka是Netflix服务发现的一种服务和客户端.这种服务是可以被高可用性配…