暂时未有相关云产品技术能力~
ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
题目描述 计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 输入例子: hello world 输出例子: 5 程序如下: #include #include #include ...
题目描述 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 ...
题目: 题目内容: 奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。 如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。
题目内容: 输入一个多位的数字,1求各数位相加。 例如输入12345,则计算1+2+3+4+5=15 输入格式: 一个整数 输出格式: 一个整数 输入样例: 1234567890 输出样例: 45 时间限制:500ms内存限制:32000kb 实现程序: #include #inc...
前几天,有一个学C的小伙伴和我交流一个问题,问题他是这么说的: 传入一个字符串,格式要求如下: ep: A2D3B4C1D2 那么将这个字符串解压的结果应为:AADDDBBBBCDD 规则就是,必须满足,字符串的第一个是字母,可以大写也可以小写,第二个为数字,范围为1-9,解压的长度不得超过1000个字符。
文章来源:http://blog.csdn.net/ccf19881030/article/details/18220447 问题一:错误:C1083: 无法打开包括文件:“QApplication”: No such file or directory 出现原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块。
#include #include static unsigned int y = 1U; unsigned int rand_r(unsigned int *seedp) { *seedp ^= (*seedp > 17); *seedp ^= (*seedp
从8月份开始,陆陆续续要对我的第一份兼职工作ITGEGE讲师做教学视频录制了,本人水平有限,我只讲一些开发在工作中的应用,其它细节的东西不做深究,毕竟本人工作经验和精力也有限,白天要上班,特别是最近又有新的项目要来了,要学习新的东西,平时也会在CSDN的特邀编辑选拔一些CSDN的精选文章,这也算是第二份兼职吧,和CSDN社区合作了,我觉得挺不错的,既有收益又能学到CSDN社区一些大神写的东西,感谢CSDN的陈秋歌女士的信任和支持。
在一些嵌入式的项目设计中,空间是相当宝贵的,因为一个CPU的存储是有限的,所以此时我们在保存数据的时候,喜欢来进行压缩保存,著名的有哈夫曼树算法,专门用来做压缩的算法,当然,本节我们不讨论这些稍微高级的算法,写一个简单的例子,开发中遇见的,比如,我想把0xfe,0xf1,0x3e,0x3c这四个字节的数据存放在8个字节的buf里去,低4位在前,高4位在后,依次类推,存够8个byte。
折腾了很久,终于烧写成功。不废话,咱们说说流程吧。 首先,我们需要有一个基于tiny4412的kernel,从友善之臂官网获取。 然后解压: 1、tar -xvf linux-3.5 .... 然后cp tiny4412-android_deconfig .config 接下来make zImage 在 arch/arm/boot/生成对应的zImage ,这个也就是我们的kernrl。
程序入口: _startc 语言入口: main@: 注释;main: 标签;伪指令: 给汇编器读的指令;.global main 导出符号main;.
crontab 周期性的时间计划任务,时间过了也不执行,到下一个周期再执行 /etc/init.d/crond start 开启crond服务 vim /etc/crontab crontab配置文件 ...
1.文本处理-echo echo -e "\033[40;35m...."背景颜色范围:40--4940:黑 41:深红 42:绿43:黄色 44:蓝色 45:紫色46:深绿 47:百色字体颜色范围:30-3930:黑 31:红 32:绿33:黄 34...
ARM linux常用汇编语法 ============================= 汇编语言每行的语法: lable: instruction ; comment 段操作: .section 格式: .section 段名 [标志] [标志]可以是如下: a 允许段 w 可写段 x 可执行段 常见段名: data, bss, text, rodata段,我们也可以定义我们自己的段。
#include #include void do_alarm(int num); int main(void) { //注册一个定时器 if(signal(SIGALRM , do_alarm) == SIG_ERR) { ...
在linux下也可以写一个类似麦克风和喇叭这样的应用程序,只要打开/dev/dsp这个设备驱动,对该设备read读操作相当于录音,对这个设备write写操作相当于放音。 对于以下出现的一些参数我就不多说了,百度很多,大家可以自行查找,关于音频编程还有很多,alsa和OSS混合编程是目前用得最多的,如果对这方面有兴趣的可以深入研究。
#include #include #include int main(void) { char buffer[1024] ; //获取当前的工作目录,注意:长度必须大于工作目录的长度加一 char *p = getcwd(buffer , 40); char *dir = ...
#if 0 — Built-in Function: int __builtin_types_compatible_p (type1, type2) You can use the built-in function __builtin_types_compatible_p to determine whether two types are the same.
嵌入式C实战项目开发技巧:如何对一个有规律的数组表进行位移操作 就像下面的这个表 之前写过上面这个标题的一篇文章,讲的是以位移的方式去遍历表中的数据,效率非常高,但是,如果要实现一个乱序的流水灯或者跑马灯的话,思考一个这样的算法是不可取的,很费时间,也很费脑力,于是,今天就说一说查表法,如果在程序中运用查表法,不论多么复杂的程序,只要符合一张表,那都可以实现,非常简单,体力活而已,接下来看看下面这个程序,对上面这个进行操作吧。
该算法实现非常简单,思路大概是这样子的: 定义若干个空箱子,假设箱子的体积有多大,然后把一些货物存在这些箱子里,当第一个箱子存满后,接着存放第二个箱子,直到货物存完为止,我们来看看这个程序: #include #include #include int FirstFit(in...
最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。 其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列, 且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1
计量经济学研究的直接目的是确定总体回归函数Yi=B1+B2Xi+ui,然而能够得到的只是来自总体的若干样本的观测值,要用样本信息建立的样本回归函数尽可能“接近”地去估计总体回归函数。为此,可以以从不同的角度去确定建立样本回归函数的准则,也就有了估计回归模型参数的多种方法。
#include #include #include #define NR(x) sizeof(x)/sizeof(x[0]) //计数排序 //排序成功返回0,否则返回-1 //局限:只能用于整型或者那些可以用整型来表示的数据集合 //优点:速度快,稳定 /* 利用计数排序将数组data中的整数进行排序。
Linux内核通用队列实现 Kfifo位置:kernel/kififo.c使用需要包含头文件#include 1、创建队列(动态创建)int kfifo_alloc(struct kififo *fifo , unsigned int size , gfp_t gfp_mask);该函数会创建并初始化一个大小为size的fifo,内核使用gfp_mask标识分配队列。
我们都知道,单向链表最后指向为NULL,也就是为空,那单向循环链表就是不指向为NULL了,指向头节点,所以下面这个程序运行结果就是,你将会看到遍历链表的时候就是一个死循环,因为它不指向为NULL,也是周而复始的执行。
工作了7个月之久,对单片机的编程也开始慢慢熟悉起来,以前总是知道单片机就是定时器,状态机,中断这些东西结合起来效率是相当高的,但是自从接手开发GPF这个芯片之后,我发现了另外一种单片机的开发技巧,高手请绕道。
unsigned char reverse_bits(unsigned char value) { unsigned char answer , i ; answer = 0 ; for(i = 1 ; i != 0 ; i
#include void Reverse(int *p , int size) { int i , tmp; for(i = 0 ; i < size/2 ; i++) { tmp = p[i] ; p[i] = p[size...
这两个宏和那个函数是我从linux内核中截取出来的,在GCC编译器下(Dev C++)编译器下编译通过。static inline int test_bit(int nr , const volatile void *addr) //测试位,测试addr的第nr位为0还是为1 { re...
//将n左移m位 int byte_to_left_move(int n , int m) { int i , ret = 1 ; if(n == 0 || n < 0) { return ; } if(n == 1) {...
如题,在嵌入式开发中,掌握位运算是节省开发时间和提高开发效率的一种高效方式。 我们不得不去熟悉如何快速掌握位运算这种高效的技巧,接下来看看程序。. #include #include int main(void) { unsigned char num = 0xfe ; ...
Q:1 Shell脚本是什么、它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。
#include #include #define NR(x) (sizeof(x)/sizeof(x[0])) int BinarySerach(int a[],int size,int p) { int L = 0 ; //查找区间的左端点 int R = size - 1...
如图,为单片机AD转换器的一种: ADC0804单片集成A/D转换器。它采用CMOS工艺20引脚集成芯片,分辩率为8位,转换时间为100µs,输入电压范围为0~5V。芯片内具有三态输出数据锁存器,可直接接在数据总线上。
#include #include int main() { double y; int x,m; for(y=1;y>=-1;y-=0.1) { m=acos(y)*10; for(x=1;x
在嵌入式项目开发中,LED灯的操作是一定要会的,也是基础中的基础,比如用51单片机写个跑马灯,这不简单嘛,定义一个数组把那8个跑马灯存起来,然后搞个for循环不就可以了嘛,但是,实际工作开发中写一个跑马灯可不像学校和书本上那么简单噢,往往最简单的东西,有可能也是最复杂的。
最近一直在做凌阳的GPL32001的单片机开发,主打产品是一架钢琴。如图所示: 在这架钢琴上,我们可以看到遍布着很多按键,有琴键,也有功能选择的按键,面对如此多的按键,对于一个刚出来工作的小伙伴肯定压力比较大,琴键的特征和普通按键不太一样,琴键的一个按键由两个按键组成,一个按键储存着两样信息,力度和键值。
最近在公司开发一个关于钢琴的PCBA项目,项目大概是这样的,完成各种功能的测试,准备去工厂量产的时候可以通过软件快速甄别硬件是否短路,断路等问题。 其中,甄别好坏的方法是通过比如按键,或者其它的操作然后响应音频信号的输出来甄别的,那到底原理是怎么样的呢? 音频信号定制为如果是0则输出1000hz,如果是1则输出3000hz。
在以前的文章中,有一篇 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号 在那篇文章中,具体可以参考。那时候我使用了简单的字符设备驱动框架,最终的ID号通过read方法可将ID读取出来,但是,这样做就太麻烦啦,有没有更简单的方法呢?其实有,这种方法称作IO地址的映射,而今天我们要说的是IO地址的动态映射方法,静态映射就太简单了,直接调用相应的接口,配置相应的寄存器,设置状态就可以实现。
原题:阳阳第一天买了两个苹果,一个苹果0.8元。从第二天开始,他每天购买前一天苹果数量的2倍,直到购买的苹果个数达到不超过100的最大值。编程求阳阳平均每天花多少钱? 编程思路: 假设阳阳每天购买苹果的数量为n个,花的钱的总数记为money , 由题意可以推导出公式:money = money + 0.
原题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每一天早上都吃前一天剩下桃子的一半零一个。到第十天早上想再吃时,发现 只剩下一个桃子了。
为了帮助更多编程者入门,我决定通过计算机程序解释与构造这本书上的例子来引出几个例子,帮助别人同时,也等于给自己复习,我们来看一个简单的例子----阶乘 如果我问5的阶乘是多少,那么根据公式可以推倒出:5!=5*4*3*2*1 = 120 这个算法其实很简单,实现如下: n! = n * (n -1) * (n - 2) ... * 3 * 2 * 1 ; 仔细观察,不难发现一个通项公式: n * (n -1) 。
#include #include #include #include #include #include #include #include #include #include #include #include //定义设备名称为test-dev #define...
#include #include #include #include "ioctl_led.h" #define DEV_NAME "test-dev" volatile bool empty = true; //定义一个进程资源的指针变量 struct task_struct *...
/modules/04 # lsmod test 787 0 - Live 0xbf010000 (PO) func 633 1 test, Live 0xbf00c000 (PO) test -> func ^ 引用计数 /modules/04 # rmmod func ...
#include using namespace std ; #define NR(x) (sizeof(x)/sizeof(x[0])) class node { public : int number ; node *next ; ...
#include using namespace std ; class Tree { public : int number ; class Tree *left ; class Tree *right ; vo...
#include #include typedef struct tree { int number ; struct tree *left ; struct tree *right ; }TREE; //对树插入节点 void insert_tree(TREE **he...
静态库 .o文件的集合 制作 ar -cr libxxx.a xxx1.o xxx2.o xxx3.o ... 编译 gcc main.c -l xxx [-L 库路径] (如果不加-L则在标准库路径下查找) 运行 ./a.out 基本概念: 静态库又称为文档文件(Archive File)。