- 博客(55)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注
原创 Altium Designer如何批量修改名称,数值,封装
原文:http://blog.csdn.net/yueniaoshi/article/details/7830849 通过全局修改(Global edit)来进行(本文以电容封装为例),封装的修改也可以通过Tools下的Footprint Manager来进行修改,本文使用全局修改具体方法:选中元件右击----Find Similar Objects,弹出如下页面Obj
2015-12-06 13:40:09 4402
原创 驱动接口函数调用过程
本文就来揭秘一下到底一个驱动的接口函数是如何被调用的: 首先我们来反汇编读驱动的程序: 跳转到__libc_read,发现他把r7赋值给3,3是传过去的参数,然后调用svc指令,进入内核态相应的入口: 接下来就已经进入内核态,入口函数中将存入r7中的3取出。 然后加载一张表,表名是sys_call_call,根据这个表中内容,断定3到底是对应什么操作: 这个表如下,可以看出表中第三项对应C
2015-12-06 13:40:07 5419
原创 基本驱动模型
应用程序使用驱动:一个设备驱动其实就是一个内核模块。应用程序使用一个字符设备是通过使用其设备文件来完成的,通过对其设备文件的读写来完成对设备的交互: 那么,想要使用字符设备驱动就首先得有一个字符设备文件,创建一个字符设备文件的方式有两种: 驱动初始化 因为驱动程序是一个内核模块,所以驱动的初始化操作是放在内核模块的初始化函数里: 主要流程如下: 下面展示一段示例代码: 下面来解释一
2015-12-06 13:40:04 1245
原创 从linux和ucos的比较中来看进程这个概念
这种问题就要和ucos结合起来嘛。 程序和进程:程序:存放在磁盘上的一些列代码和数据的可执行映像,是一个静止的实体。进程:是一个执行中的程序,它是动态的实体。 linux进程的四要素:1. 有一段程序供其执行。这段程序不一定是某个进程所专有,可以与其他进程共用。2. 有进程专用的内核空间堆栈。3. 在内核中有一个task_struct数据结构,即通常所说的“进程控制块”。有了这个数据结构,进程才能
2015-12-06 13:40:02 6933
原创 内核链表
能不能一种链表中链接不同的类型呢,相应这种号召,内核链表诞生了。内核链表之所以能够链接不同的类型的数据,是因为它和普通链表不一样,它链接的不是数据结构的起始地址,而是链接的该数据结构中的的list_head属性。 下面是比较重要的函数: 其他的都很简单,专门介绍一下list_entry函数: 函数最后返回的是这个结构体节点起始地址。Ptr是这个节点中list_head属性的地址,type是这个
2015-12-06 13:40:00 493
原创 实验室外包项目电路图中复位电路的错误 和 复位电路原理的学习
王工小板中对于stm32f411芯片的复位电路如下: 实际上这个电路是错误的,经过实测,stm32f411芯片运行时复位引脚为高电平,而在这个电路图里,实际上是把stm32f411芯片运行时复位引脚的电平看为了低电平,按照这个电路,按下按键,会引起电平跳转到高电平从而触发复位,然而实际上并不是这样,stm32f411复位引脚内接上拉电阻(经过实测),所以即使按键松开,其实RST
2015-12-06 13:39:57 937
原创 linux内存管理初学
虚拟内存模型Linux 内核本身并不运行在虚拟空间中,其使用的是物理寻址模式。 物理内存被分割为界面,一个内存页面的大小由PAGE_SIZE宏决定。 虚拟地址空间的方式使程序员可以将巨大的结构用于连续的地址,而不必考虑物理内存上的限制。线性地址到物理地址线性地址需要由处理器或者一个单独的MMU转换为物理地址,转换方式如下: 解析的方式为:1.用线性地址中的第一个位段为下标可以在页面目录中找的
2015-12-06 13:39:55 349
原创 linux文件系统初学
Linux磁盘分区和目录 Linux发行版之间的差别很小,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。 Windows的文件结构是多个并列的树状结构,最顶部是不同的磁盘(分区),如C,D,E等。而linux的文件结构是当个树状结构。 分区和目录的关系:1. 任何一个分区都必须挂载到某个目录上。2. 目录是逻辑上的区分,而分区是物理上的区分。3. 根目录是所有linux的文件和目录下
2015-12-06 13:39:52 561
原创 自制吸锡带
焊接qfp封装芯片的时候,由于两个引脚间距过小,常常会在引脚上留有焊锡,这个时候就需要吸锡带,但是一般情况下我们手边的设备并不齐全,所以我们可以利用手边的工具自制。 工具:烙铁,松香,铜丝。 把杜邦线去皮,取出铜丝,拧成麻花状,不要拧的太紧,然后用烙铁按着铜丝在松香里上松香。取出,一条吸锡带就做好了。 上图是铜丝的图。
2015-12-06 13:39:50 11054
原创 joj 1089 &&zoj 1060&&poj 1094 以及wa的分析和数据
这道题着实让无数人纠结,wa了n次n天,poj的discuss有大量的数据,wa的同学可以试一试。结果我把数据都过了还是wa,后来在discuss的帮助下终于ac了,判断是否有环要最先判断,例如如下的数据:4 4ACDB总的思想是拓扑排序,我的方法比较笨,先不完全拓扑排序判断有无环,在完全拓扑排序判断是否满足了条件:#include#include#incl
2015-12-06 13:39:47 606 1
转载 Ubuntu下双显示器设定
自8.10后的版本,系统自带了xrandr工具,可以很好的实现双显示器。配置与使用如下:介绍 X Windows 中有一个显示分辨率的概念,在默认情况下,这个显示分辨率为 max*max ,max等于你的所有连接上的显示器中最大分辨率中的最大值。例如我的笔记本液晶屏最大分辨率为 1024*768,外接显示器最大分辨率为 1280*1024,则默认的显示分辨率为 1280*128
2014-08-07 18:41:25 2059
转载 ffmpeg 命令的使用
当然先安装了 gentoo 下一条命令搞定emerge ffmpeg 格式转换 (将file.avi 转换成output.flv) ffmpeg -i file.avi output.flv -i 表示输入文件 :现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi两个命令
2014-07-27 14:24:41 768
转载 ifeq ifneq ifdef ifndef
条件语句中使用到了三个关键字:“ifeq”、“else”和“endif”。其中:1. “ifeq”表示条件语句的开始,并指定了一个比较条件(相等)。之后是用圆括号括包围的、使用逗号“,”分割的两个参数,和关键字“ifeq”用空格分开。参数中的变量引用在进行变量值比较时被展开。“ifeq”之后就是当条件满足make需要执行的,条件不满足时忽略。2. “else”之
2014-07-26 21:31:32 5369
原创 joj 1928
筛选法求素数~~~~~ #include #include #include #include using namespace std;int prim[50000];int main(){ memset(prim,0,sizeof(prim)); int i; for(i=2;i<50000;i++) {
2012-02-14 17:05:41 409
原创 joj 1877
按这题目来就行 #include #include #include using namespace std;struct node{ char name[35]; int total_num;};node tree[10001];int main(){ int len=0,num=0; char str[35]
2012-02-14 15:12:31 356
原创 joj 2660 河床
rmq的st算法,还有就是从头遍历的小技巧,不然仍然会超时。。。。#include#include#includeusing namespace std;#define max(a,b) (a>b?a:b) #define min(a,b) (a#define MN 40005 int w[30005];int mi[MN][15],mx[MN][15];
2011-11-19 15:48:19 382
转载 rmq的st算法及模板
RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,jST算法: 首先是预处理,用一个DP解决。设a是要求区间最值的数列,f[i,j]表示从第i个数起连续2^j个数中的最大值。例如数列3 2 4 5 6 8 1 2 9 7 ,f[1,0]表示第1个数起,长度为2^0=1的最大值,其实就是3这个数。f[
2011-11-19 15:35:17 484
原创 joj 2651
水题,我竟然把Yes和No写成了YES和NO。。。。。 #include#includeusing namespace std;int frid[105][105];int cloth[105];int n;int r_right;void dfs(int m,int c){ //cout if(r_right==0)
2011-11-18 20:30:54 453
原创 joj 1089 &&zoj 1060&&poj 1094 以及wa的分析和数据
这道题着实让无数人纠结,wa了n次n天,poj的discuss有大量的数据,wa的同学可以试一试。结果我把数据都过了还是wa,后来在discuss的帮助下终于ac了,判断是否有环要最先判断,例如如下的数据:4 4ACDB总的思想是拓扑排序,我的方法比较笨,先不完全拓扑排序判断有无环,在完全拓扑排序判断是否满足了条件:#include#include#incl
2011-11-11 20:19:27 568
原创 joj 1189
大数,题目有点误解人。。。明明说VeryLongInteger但运算的却不是数字而是文本行#include#includeusing namespace std;char str1[1000005],str2[105];int main(){ scanf("%s",str1); while(scanf("%s",str2),strcmp(str2,"0"
2011-11-10 21:18:34 404
原创 joj 2699
水题 简单的博弈思想#include#includeusing namespace std;int main(){ int n,k; while(scanf("%d%d",&n,&k),n||k) { int i=n%(k+1); if(i!=1) printf("16\n");
2011-11-10 20:30:02 396
原创 joj 2717
水题,应用简单dp,含i个字符的串的个数等于i-1个字符的串的个数*2(包扩加上0和加上1),再减去最后3个字符是011的情况。 #include#includeusing namespace std;double dp[41];int main(){ memset(dp,0,sizeof(dp)); dp[0]=1; dp[1]=2;
2011-11-10 19:50:00 350
原创 joj1026
copy来的思想,果然自己还很菜啊递归方程式如下(f(i,j)为i个砖头,第一排为j个的摆发):f(i,j)=f(i-j,j+1)+f(i-j,j+2)+...+f(i-j,floor((i-j-1)/2)#include#includeusing namespace std;double p[501][501]; int main(){ int i,j,
2011-11-06 20:53:14 413
原创 joj 1171
水题,做1089太郁闷了所以刷了到水题,代码很笨,基本没有参考价值,只为看一眼快把我折磨死的气球。。。。。。。。。。。#include#includeusing namespace std;char str1[1005],str2[1005];int main(){ while(scanf("%s%s",str1,str2)!=EOF) {
2011-11-06 18:44:22 496
原创 joj 2343
我这辈子都会记住这个定理:n元循环群(a)中,元素a^m是(a)的生成元的充要条件是(n,m)=1.哎,郁闷。。。。#include#includeusing namespace std;int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { int a,b;
2011-11-06 17:43:12 385
原创 joj 1387
又见0-1背包,长度既是价值也是体积。#include#includeusing namespace std;int dp[100000];int cd[105];int main(){ int cd_sto; while(scanf("%d",&cd_sto)!=EOF) { int n; scanf(
2011-11-04 20:32:14 391
原创 joj 1078 hdu 1116
欧拉回路 在加上 并查集判断连通性,把每一个单词当做一个边,话说我一开始当做h路做的。。。。。#include#include#includeusing namespace std;int father[26],rank[26],r[26],c[26],mark[26];int find(int x){ //cout if(father[x]==x)
2011-11-03 23:19:29 401
原创 joj 1317
各种序。。。。。。。。。。。#include#include#includeusing namespace std;void tree(char *s1,char *s2){ if(s1[0]=='\0') return; else if(s1[1]=='\0') { printf("%c",s1[
2011-10-30 15:09:00 395
原创 joj2035
一开始超时,怎么改都超时,后来果断把stl换成纯数组,竟然AC了,莫非stl的操作很费时间吗,不解:之前的超时stl版:#include#include#includeusing namespace std;int mark[10005];int main(){ int n; while(scanf("%d",&n),n>0)
2011-10-30 10:36:41 420
原创 joj 1329 二叉树
给出中根序列和后根序列求路径值最小的叶节点,各种队,各种栈(话说一开始理解错题了,英语不好的悲哀) #include#include#includeusing namespace std;int mmaaxx;int k;void tree(stack s1,stack s2,int m){ if(s1.size()==1&&s2.size()==1
2011-10-28 21:08:53 435
转载 stl 常用函数(包括vector list stack queue)
vector:Constructors 构造函数 Operators 对vector进行赋值或比较 assign() 对Vector中的元素赋值 at() 返回指定位置的元素 back() 返回最末一个元素 begin() 返回第一个元素的迭代器 capacity() 返回vector所能容纳的元素数量(在不重新分配内存的情况下) clear() 清空所有元素
2011-10-28 19:46:14 2573
原创 joj2474
先找各阶段的状态,再dp规律是:2*1的不同的数目为2;2*2的不同的数目为7;2*3的不同的数目为8;以下全为8,注意这里说的不同的数目是指2*n中横跨n个格的放法,即不可分割的放法。 #include#includeusing namespace std;int dp[101];int main(){ int n,i; mem
2011-10-21 21:17:12 382
原创 joj2308
贪心,弄个2重循环,每次取最优就可以了。#include#include#include#include using namespace std;int a[52];int main(){ int n,k; while(scanf("%d%d",&n,&k)!=EOF) { int i,j; for(
2011-10-21 19:54:43 344
原创 joj2325
据说要用dp,不过我用的是BFS,就是从上下左右四个方向压缩,在余下的面积不小于max的情况下一直到压缩出全为一的子阵,然后更新max的值,反复进行这个操作,即一开始的矩阵为:1 1 1 10 0 0 01 1 1 10 0 0 0可以压缩为:0 0 0 0 (去掉第一行)1 1 1 10 0 0 0 1 1 1 1 (去掉第四行)0 0 0 0
2011-10-21 17:56:40 352
原创 hdu 1325
桉树的定义来就好了#include#includeusing namespace std;int p[100005];int c[100005];int u[100005];int rank[100005];int father[100005];
2011-10-14 22:38:41 681
原创 hdu 1711
感觉到了算法的伟大,虽然是用了最基本的kmp算法,不过代码写的比较乱,因为数组是从0开始,如果数组时从1开始的话估计就会清晰了。#include#includeusing namespace std;int s1[1000005],s2[10005];int
2011-10-13 09:33:35 549
转载 大数相乘
x[m]和x[m-1]相乘,xx[m]存的是x[m]的长度 int x[501][1500];int xx[501];void multiply(int m){ int a[1500]; memset(a,0,sizeof(a));
2011-10-08 12:50:21 387
原创 hdu 1115
模板模板模板#include#include#includeusing namespace std;struct point { double x; double y; }; point bcenter(struct point
2011-10-04 19:48:17 637
转载 求三角形重心 包括凹多边形的模板
求多边形重心的题目大致有这么几种:1,质量集中在顶点上。n个顶点坐标为(xi,yi),质量为mi,则重心 X = ∑( xi×mi ) / ∑mi Y = ∑( yi×mi ) / ∑mi 特殊地,若每个点的质量相同,则 X = ∑xi / n
2011-10-04 19:47:02 1876
tinyhttpd 支持png图像版
2016-05-18
linux为什么把内核空间划到高1G而不是低1G
2015-08-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人