- STM32中的计时与延时
lupinjia
STM32stm32单片机
前言在裸机开发中,延时作为一种规定循环周期的方式经常被使用,其中尤以HAL库官方提供的HAL_Delay为甚。刚入门的小白可能会觉得既然有官方提供的延时函数,而且精度也还挺好,为什么不用呢?实际上HAL_Delay中有不少坑,而这些也只是HAL库中无数坑的其中一些。想从坑里跳出来还是得加强外设原理的学习和理解,切不可只依赖HAL库。除了延时之外,我们在开发中有时也会想要确定某段程序的耗时,这就需要
- STM32裸机-时间片任务轮询
妖异的小尾巴
代码结构
瞎逼逼部分程序的编写裸机有几大类,分别是顺序执行前后台程序时间片任务轮询带系统的程序我们平常学习裸机开发程序中最常使用的可能就是顺序执行和前后台程序程序顺序执行的示例简单直接,直接往while(1)循环里放就是了前后台程序则是在顺序执行的基础上加上了中断,用于处理一些外部信号和比较紧急的事件但是这样出来的程序,实际的运行效果就比较乱了,我们无法确定某段程序能不能在我们需要的时候调用,比如让一些实时
- Linux中内核与驱动程序
请叫我7plus
Linux设备驱动linux单片机运维
系列文章目录第一章Linux中内核与驱动程序第二章Linux设备驱动编写(misc)第三章Linux设备驱动编写及设备节点自动生成(cdev)第四章Linux平台总线platform与设备树第五章Linux设备树中pinctrl与gpio(licheenanopi)文章目录系列文章目录前言一、Linux内核简述?1.内核开发与裸机开发的区别2.用户态和内核态二、Linux设备驱动程序1.具体思路2
- 单片机裸机开发框架
跟我一起喵喵喵
STM32嵌入式
前言单片机逻辑开发框架,轮询,前后台,利用定时器的前后台提示:以下是本篇文章正文内容,下面案例可供参考一、轮询该方法比较简单,在main函数内执行while(1),在while内顺序执行函数voidmain(void){//外设初始化xx_Init();while(1){a();b();c();}}二、前后台中断为后台,在中断内更新全局变量,利用全局变量判断要更新那个函数代码如下(示例):vola
- 裸机开发及开发环境搭建
vv不说话
MX6U嵌入式linuxlinux
ARM的裸机开发,也就是不带操作系统开发,就和我们开发STM32一样,如果有STM32开发经验的话学起本篇会很容易1、裸机开发是了解所使用的CPU最直接、最简单的方法,裸机开发是直接操作CPU的寄存器。Linux驱动开发最终也是操作的寄存器,但是在操作寄存器之前要先编写一个符合Linux驱动的框架。同样一个点灯驱动,裸机可能只需要十几行代码,但是Linux下的驱动就需要几十行代码。2.Linux驱
- 电机控制系列模块解析(第二篇)—— 浅谈微型软件架构
初心不忘产学研
软件构建软件工程自动化自动驾驶汽车嵌入式硬件驱动开发
一、电机控制软件架构电机控制大多数产品采用裸机开发,设计裸机嵌入式软件架构时,通常需要考虑系统的实时性、资源效率和模块化等方面。以下是一个基本的步骤和注意事项:1.系统需求分析:功能需求要明确系统需要完成的基本功能。性能需求要确定系统的响应时间(实时性)、功耗限制、存储空间和内存大小等硬件资源约束。安全性与可靠性:评估系统运行环境及可能遇到的问题,确保软件具有必要的错误处理机制和容错能力。2.硬件
- 裸机程序架构-时间片轮询架构
小星星星球
我的开源驱动架构单片机c语言stm32
XxxTimeSlice介绍简介XxxTimeSlice时间片轮询,是一种裸机程序架构。基于外部提供的tick(systick中断或定时器中断),根据注册生成多种时间片(支持0*tick)提供给任务当tick,让多个任务按指定频率依次执行。其核心思想是定时器的分时复用。适合中小型项目的裸机开发,结合状态机可以有效消除程序中不合理的delay阻塞延时。获取方式我的CSDN资源源码仓库特性基于链表,注
- AI嵌入式K210项目-目录
疯狂飙车的蜗牛
K210开发板人工智能K210AI嵌入式AI嵌入式目录
系列文章简介本系列文章简单介绍K210芯片的使用方法,大致分为两个部分:C语言裸机开发MicroPython开发学习第一部分有助于大家对K210芯片的外设接口和内置的各种硬件加速器有更深刻的了解,第二部分有助于大家快速实现功能;实验所使用的的开发如下,大家可以联系我或者到pdd维脑科技购买,购买后可加入技术交流群;目录C语言裸机开发AI嵌入式K210项目(1)-芯片开发板介绍AI嵌入式K210项目
- AI嵌入式K210项目(19)-安装CanMV IDE开发软件
疯狂飙车的蜗牛
K210开发板人工智能AI嵌入式K210MicroPythonCanMVpython
文章目录前言一、软件下载安装二、软件简介三、设备连接四、在线模拟五、开机运行程序附录:MicroPython固件烧录总结前言前几章我们介绍K210使用C语言裸机开发方法,大家对K210内部的硬件和各种加速器有了初步的了解,但是开发人工智能相关程序,使用C语言的话复杂度比较高,因此接下来我们逐步学习基于K210芯片使用python开发人工智能相关程序,包含颜色识别,人脸识别,口罩识别等,也包括一些分
- 嵌入式软件开发人员有必要学习系统移植的知识吗?【ppt获取见文末】
一口Linux
从0学arm原创Linux驱动学习
《从零开始学ARM》的配套视频说明为了让粉丝更好的学习我的新书里面的知识,一口君特地录制了配套学习视频,《从0学ARM第一期》《从0学ARM第一期》视频已经免费发布在B站,而书中除了ARM汇编、裸机开发等知识,还涉及到系统移植的一些知识点所以一口君干脆录制了一期《系统移植》的视频系统移植相关知识是否需要学习?现在很多芯片厂家为了方便客户进行二次开发,将很多系统移植的软件包、制作工具等都封装在sdk
- 【嵌入式-裸机开发】kermit工具安装使用
Japathy
kermitarm
安装ckermitsudoapt-getinstallckermit配置kermitvim~/.mykermrcsetline/dev/ttyS0setspeed115200setcarrier-watchoffsethandshakenonesetflow-controlnonerobustsetfiletypebinsetfilenamelitsetrecpack1000setsendpack
- AI嵌入式K210项目(1)-芯片开发板介绍
疯狂飙车的蜗牛
K210开发板人工智能
系列文章目录在人工智能大潮滚滚而来的时代,作为一个从事嵌入式行业多年的程序猿倍感焦虑,有被替代的焦虑,也有跟不上新技术步伐的无奈,本系列文章将介绍一个从硬件设计到ai训练、最后到模型部署的完整案例;第一阶段我将介绍使用C语言进行裸机开发,在熟悉了硬件和系统之后,我们进入进阶篇,使用MicroPython进行开发;不仅会设计传统的嵌入式技术栈,也有会Python,模型训练,识别分类检测等相关的AI知
- 正点原子阿尔法linux开发板USB烧录裸机例程
一颗无米粿
linux
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、安装uuu工具二、添加工程文件1.在工程文件夹下添加烧录文件2.修改Makefile文件3.开发板配置4.烧录其他问题前言提示:这里可以添加本文要记录的大概内容:使用uuu工具进行usb烧录裸机开发例程提示:以下是本篇文章正文内容,下面案例可供参考一、安装uuu工具sudosnapinstalluniversal-up
- 嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-IVT表和BootData和DCD详解)
仙牛电祖
linux学习笔记
一,启动头文件1.BootRom做的事情。当我们设置BOOT模式为内部BOOT模式后,I.MX6U内部的bootROM就会执行,首先初始化时钟,设置内核时钟为396MHz。使能MMU和Cache,使能L1Cache和L2CacheMMU,目的就是为了加速启动。从BOOT_CFG设置的外置存储中,读取image,然后做相应的处理。2.IVT和BootData数据bin文件前面要添加头部。可以得到,我
- 嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-启动设备的选择)
仙牛电祖
Linuxlinux学习笔记
一,硬件启动方式选择1.启动方式的选择6ull支持多种启动方式。比如可以从SD/EMMC、NANDFlash、QSPIFlash等启动。6ull是怎么支持多种外置flash启动程序的。1.启动方式选择:BOOT_MODE0andBOOT_MODE1,这两个是两个IO来控制的,选择从USB启动还是内部BOOT启动,如果要烧写系统到开发板中可以选择从USB下载,下载到SD卡,EMMC,NADN等外置存
- 嵌入式Linux之MX6ULL裸机开发学习笔记(汇编LED灯点亮)
仙牛电祖
Linuxlinux学习笔记
汇编LED驱动实验1.驱动编写首先创建在vscode上创建工作区,创建led.s汇编文件,然后编写以下程序.global_start@全局标号_start:/*使能所有外设时钟*/ldrr0,=0x020c4068@CCGR0ldrr1,=0xffffffff@要向CCGR0写入的数据strr1,[r0]@将0xffffffff写入CCGR0中ldrr0,=0x020c406c@CCGR1strr
- ubuntu 12.04 arm-linux-gcc
时间一粒
环境搭建交叉编译ubuntuarmgcc
因为用到的开发板是tiny6410,所以直接解压光盘自带的arm-linux-gcc包tarzxvfarm-linux-gcc-4.5.1-v6-vfp-20101103.tgz把解压出来的目录另存为自己想要存放的地方mv/opt/FriendlyARM/toolschain/4.5.1/~/tiny6410/arm-linux-gcc-4.5.1把交叉编译工具链的路径添加到系统变量中:sudog
- 裸机开发(1)-汇编基础
Embedded-Xin
Linux驱动/内核编程汇编linux驱动开发
文章目录GNU汇编语法常用汇编指令处理器内部数据传输指令存储器访问指令压栈和出栈指令跳转指令算术指令逻辑运算指令实战函数发生调用时,需要进行线程保护,简单来说,就是先进行压栈操作,将调用函数参数、返回值等存到R0-15寄存器中,在执行完毕后,需要将数据内容从寄存器读出,进行出栈操作,而这一系列操作需要SP指针。芯片上电后SP指针(堆栈指针寄存器)还未初始化完毕,无法执行C代码,所以必须要用汇编设置
- 【Linux驱动】字符设备驱动模板(五)—— 寄存器驱动LED
仲夏夜之梦~
stm32嵌入式硬件单片机
前面已经实现了设备号、字符设备的注册以及节点的自动创建,接下来将实际操作外设,下面将直接通过寄存器操作LED,后续还可以通过设备树来操作。一、驱动入口函数一般对外设的初始化,只要执行一次即可,所以放在驱动入口函数xxx_init1、建立物理地址和虚拟地址的映射在裸机开发时,因为没有OS,所以一般通过直接读写物理地址来操作寄存器;有了OS后,每个进程都会被分配一个虚拟地址空间,使每个进程在自己的地址
- 【Linux驱动】pinctrl 和 gpio子系统(一)—— pinctrl 节点解析,引入gpio子系统
仲夏夜之梦~
1024程序员节linux
裸机开发时,如果要点亮一个LED,我们要做如下内容:初始化时钟设置引脚复用为哪个功能,配置引脚的电气属性设置引脚的IO方向、初始值有了设备树以后,我们可以通过pinctrl和gpio子系统来配置上述内容。pinctrl子系统:控制引脚的复用、电气属性gpio子系统:控制GPIO初始化(如设置IO方向、初始值)一、pinctrl配置节点pinctrl子系统用于配置复用为不同功能时的电气属性,这就需要
- 裸机开发(2)-裸机实战
Embedded-Xin
Linux驱动/内核编程驱动开发linux
文章目录LED灯GPIO中断中断相关概念IRQ中断简介GIC中断控制器简介总体框架图IMX6ULL中断源ID对照GIC逻辑分块CP15协处理器中断使能及优先级设置总中断使能具体中断ID使能中断优先级设置LED灯linux_bsp/board_driver/1.ledcGPIO中断中断相关概念IRQ中断简介Cortex-A内核CPU的所有外部中断都属于IRQ中断,任意外部中断发生都会出发IRQ中断,
- Led驱动实验之Led灯初始化
凌肖战
Linux驱动学习arm开发linux
一.简介本文继上一篇文章的学习,上一篇文章初步写好了Led驱动框架代码的。文章地址如下:LED驱动框架代码的实现-CSDN博客本文继续Led灯驱动代码的实现,主要学习编写Led灯IO的初始化工作。二.Led驱动的IO初始化说明1.地址映射前面进行Led灯裸机开发实验时,关于Led的IO初始化工作包括如下:1.使能时钟信号,即设置Led灯相关的时钟IO口2.复用功能,即设置为GPIO功能3.配置电气
- 设计一个在裸机下使用的简单软件定时器(3):功能测试
时光飞逝的日子
RTOS单片机开发RTOS软件定时器裸机定时任务stm32
0前言在RTOS中,我们经常用到软件定时器来为我们处理一些对于实时性要求不高的定时任务。在裸机开发中,我们可能也有很多需要定时执行的任务,为了优雅地执行这些定时任务,本文设计一个在裸机下使用的简单软件定时器,提供类RTOS软件定时器的功能。1功能测试在《设计一个在裸机下使用的简单软件定时器(2):软件设计》中我们已经完成了软件定时器的设计,下面是测试环节。1.1部署函数到目标位置(1)将检查定时器
- LV.13 D1 嵌入式系统移植导学 学习笔记
djjyy
学习笔记linuxarm开发
一、嵌入式系统分层操作系统:向下管理硬件、向上提供接口操作系统为我们提供了:1.进程管理2.内存管理3.网络接口4.文件系统5.设备管理那系统移植是干什么呢?就是将Linux操作系统移植到基于ARM处理器的开发板中。那为什么要移植系统呢?在裸机开发的时候我们发现我们什么函数都调不了,什么都要自己实现。这样做开发的时候需要大量的时间。只能做一些小的项目。二、系统移植的目的移植不同架构的处理器指令集不
- 设计一个在裸机下使用的简单软件定时器(2):软件设计
时光飞逝的日子
单片机开发Linux开发RTOS软件定时器裸机定时任务stm32
0前言在RTOS中,我们经常用到软件定时器来为我们处理一些对于实时性要求不高的定时任务。在裸机开发中,我们可能也有很多需要定时执行的任务,为了优雅地执行这些定时任务,本文设计一个在裸机下使用的简单软件定时器,提供类RTOS软件定时器的功能。1软件设计为了使软件定时器更加灵活,软件定时器应该具备增加、删除定时任务的功能,因此我们必须设计有增加一个定时器函数、删除一个定时器函数。在《设计一个在裸机下使
- 设计一个在裸机下使用的简单软件定时器(1):框架+数据结构分析
时光飞逝的日子
单片机开发Linux开发RTOS软件定时器裸机定时任务stm32
0前言在RTOS中,我们经常用到软件定时器来为我们处理一些对于实时性要求不高的定时任务。在裸机开发中,我们可能也有很多需要定时执行的任务,为了优雅地执行这些定时任务,本文设计一个在裸机下使用的简单软件定时器,提供类RTOS软件定时器的功能。1软件定时器框架分析根据软件定时器所承担的职责,我们需要保证软件定时器尽可能准确,同时要保证系统的响应较快。因此,我们需要为软件定时器提供一个时钟滴答用来计时,
- FreeRTOS第一步:创建多任务
woshizuopie
目录单片机裸机开发与基于操作系统开发FreeRTOS介绍创建多任务—SRAM动态内存一、动态内存空间的堆从哪里来:二、定义任务函数:三、定义任务栈:四、定义任务控制块指针:五、动态创建任务:六、启动任务:七、多任务—SRAM动态内存的main.c:单片机裸机开发与基于操作系统开发裸机就是执行单任务的单片机,对应的访问方式有轮询、中断和DMA(直接存储器访问,看单片机是否支持),这里的操作系统一般指
- 从二极管到linux服务器
唐顺才
linux应用开发模拟电路服务器linux运维
软件设计:os:批处理系统:轮询系统:单片机裸机开发实时系统:ucosii,rtos,rt-thread、风和系统、liteos(主要是海思系列soc在用)等非实时系统:linux对os任务切换时寄存器的功能有理解。对ipc机制有理解。bsp:需要对寄存器、单片机内部总线、iic、spi、uart、can、modbus、fsmc(8080/8060)协议、sdio协议比较了解。gui:单片机常用的
- 【裸机开发】GPT 定时器(一) —— GPT的功能、寄存器解析
仲夏夜之梦~
#I.MX6ULL裸机开发单片机
后续需要使用GPT计数器实现中断以及延时,这里我们需要先了解一下GPT的功能以及相关寄存器。目录一、GPT定时器的功能1、计数器2、输入捕获3、输出比较(GPT的两种工作模式)二、寄存器解析1、GPTx_CR2、GPTx_PR3、GPTx_SR4、GPTx_IR5、GPTx_OCRn6、GPTx_ICRn7、GPTx_CNT一、GPT定时器的功能gpt定时器的主要包含以下三个功能:计数器输入捕获(
- ARM开发环境搭建
IsQiya
安装教程armstm32pytorch
1.下载E:\ARM开发\工具软件\ARM裸机开发工具\Yagarto工具包路径下两个程序2.下载E:\ARM开发\工具软件\USB转串口驱动\CH3403.下载E:\ARM开发\工具软件\ARM裸机开发工具\JRE4.打开设备管理器->右键->更新5.6.选择E:\ARM开发\工具软件\ARM裸机开发工具\DRIVER目录下的(注意:此操作win7环境下,win7以上还要有点其他步骤)选择好就点
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include