linuxc
文章平均质量分 87
嵇康
冷静,爱思考,爱读书
爱结识有共同爱好的人
与公司共成长。
展开
-
x210项目重新回顾之十七升级到linux4.19.114 +buildroot2018再讨论
代码参考他的是linux_4.10(dtb为 s5pv210-x210..dtb)我打算用linux4.19.114((dtb为 s5pv210-smdkv210.dtb)) ,所以修改build.sh。(在uboot来看sd卡为编号为1,uImage在1分区)mmcbootpart=1 //cbootpart我这里也放在1分区,里面有uImage,dtd。mmcrootpart=1 //rootfs我这里也放在1分区。mmcdev=1 //在uboot来看sd卡为编号为1。12 # sd卡设备文件。原创 2023-10-29 03:54:40 · 686 阅读 · 0 评论 -
c++几点注意事项
1.拷贝构造(深拷贝) :用已经有的对象构造一个新对象MyString::MyString(const MyString & other){int len = strlen(other._str);this->_str = new char[len+1];strcpy(this->_str,other._str);}MyString s1;MyString s2(s1); //调用了拷贝构造MyString s2=s1;//调用了拷贝构造2.赋值运...原创 2020-06-17 00:54:57 · 167 阅读 · 0 评论 -
数据结构之排序
1 冒泡排序 void swap(int *a, int *b) {int tmp=*a; *a=*b; *b=tmp; } void BubbleSort(int data[],int cnt) {int i=0,j=0; for(i=(cnt-1);i>0;i--) {for(j=0;jif(data[j]>data[j+1]){原创 2015-01-28 07:03:41 · 411 阅读 · 0 评论 -
数据结构之AVLTree(04-1:Root of AVL Tree)
// Root_of_AVL_Tree.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #define MAX 50int length=0;typedef struct node{i原创 2015-01-28 06:03:23 · 714 阅读 · 0 评论 -
数据结构之队列
typedef struct queue{ int queuesize; //数组的大小 int head, tail; //队列的头和尾下标 int *q; //数组头指针}Queue;void InitQueue(Queue *q){ q->queuesize = 8;原创 2015-01-28 05:34:18 · 362 阅读 · 0 评论 -
二分法求多项式根
#include #include int a[4]; double c[2];double fun(double x){ return a[0]*x*x*x+a[1]*x*x+a[2]*x+a[3];}int main(int argc, char* argv[]){ int i; double x=10,x1=原创 2014-12-16 05:44:03 · 1150 阅读 · 0 评论 -
编译android内核
参考http://www.elecfans.com/emb/xitong/20100608219051.html1.内核下载:http://http://code.google.com/p/android/downloads/list?can=1&q=android可以下(2.6.23-android-m5-r14.tar.gz)解压后为kernel 2.交叉工具链下载原创 2011-12-14 11:36:59 · 2065 阅读 · 0 评论 -
改进后的Mylist(双链表)--添加了在指定位置后插入,析构里删除节点MyNode
#if !defined(AFX_MYNODE_H__9D25A9D2_B0CB_4903_A7B2_63009846E9DA__INCLUDED_)#define AFX_MYNODE_H__9D25A9D2_B0CB_4903_A7B2_63009846E9DA__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VE原创 2012-03-09 15:37:04 · 1229 阅读 · 0 评论 -
c++的对象计数问题的多线程实现
几个概念:1.锁lock-》mutex_lock或(recursive_mutex_lock)2.锁的监视类:lock_guard3.实体计数类counter ,-》具体的实体比如:apple,peal4线程类thread -》具体实现buy_fruits1。锁的代码:mutex.h#ifndef MUTEX_H_#d原创 2012-10-10 15:48:54 · 907 阅读 · 0 评论 -
最大子序列问题
最近在回顾数据结构,听了mooc的浙江大学的课程http://www.icourse163.org/learn/zju-93001#/learn/announce,第一课就是这个问题,觉得挺好的,就记录下来了,问题如下:Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is de原创 2014-12-05 03:06:02 · 757 阅读 · 0 评论 -
列出叶节点(PAT3-2)
参考:http://www.patest.cn/contests/mooc-ds/03-2问题:03-2. List Leaves (25)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue原创 2014-12-24 04:06:47 · 4298 阅读 · 3 评论 -
用堆栈把中缀表达式转化为后缀表达式
参考文章:http://www.cnblogs.com/mygmh/archive/2012/10/06/2713362.html中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。5原创 2014-12-13 10:32:22 · 8341 阅读 · 1 评论 -
链表实现的多项式表达式(记住系数和指数)
#include #include #include #include //记住系数和指数typedef struct Node{int coef;int exp; struct Node *next;}Node;void printNode(Node* node){ if(node) { printf("%d ",node->coe原创 2014-12-13 08:44:46 · 1753 阅读 · 0 评论 -
C语言基础--素数
#include #include int prime(int a,int b){int count=1;int flag=0;int sum=0;int i=2,j=0;while(count{ i++; int tmp=(int)sqrt(i); for(j=2;j2?tmp:2);j++){flag=1; if(i%j原创 2014-12-31 04:55:47 · 403 阅读 · 0 评论 -
C语言基础--输出数值的中文读法
#include #include #include void strdel(char*s,char del){int i;for(i=0;s[i];i++){if(s[i]==del)s[i] = 0;}}void printInChinese(int a){ char *s="";char * arr[10];int i=原创 2014-12-31 05:39:35 · 4508 阅读 · 0 评论 -
C语言基础--分解质因素
#include "stdafx.h"#include #include #include int devidePrime(int a){int count=1;int flag=0;int i=2,j=0;static k=0;while(a%2==0){k++;if(k==1)printf("2"); else原创 2014-12-31 06:35:50 · 587 阅读 · 0 评论 -
C语言基础--完美数
#include #include #include int perfectPrime(int a){int tmpVal=a;int sum=0;int flag=0;int arr[10]={0};int i=2,j=0,m=0;while(a%2==0){ a=a/2;arr[m++]=i;}w原创 2014-12-31 07:01:49 · 766 阅读 · 0 评论 -
前缀表达式求值
思路:这里实际是把前缀表达式逆序输出转化为类似后序表达式求值:比如:输入:+ + 2 * 3 - 7 4 / 8 4 处理成 4 8 / 4 7 - 3 * 2 + + 链表,放到后缀表达式求值程序 postFixEval计算得13.0#include #include #include #include原创 2015-01-01 04:30:27 · 3972 阅读 · 0 评论 -
用堆栈把中缀表达式转化为后缀表达式,之后再求后缀表达式结果
红色部分为在上一篇文章上补充的部分#include "stdafx.h"#include #include #include #include #define MAXSIZE 100//转换中缀表达式用的符号(+-/*)堆栈,为了最后转换成后缀表达式链表用typedef struct Stack{int arr[MAXSIZE];int原创 2014-12-13 12:11:18 · 1257 阅读 · 0 评论 -
c语言数据结构之二叉(查找)树
1.ertree.h#ifndef _TREE_H#define _TREE_H#include #include #include typedef struct node{char ch;struct node *left,*right;}TREE;TREE* initTREE();void printBeforeTREE(TREE* tree原创 2011-12-21 16:57:02 · 451 阅读 · 0 评论 -
c语言数据结构之栈
1.stack.h#ifndef _STACK_H#define _STACK_H#include #include #include #include "tree.h"#define INIT_SIZE 10#define INCREMENT 10//#include "data.h"typedef TREE * ElementType ;typ原创 2011-12-21 17:01:38 · 396 阅读 · 0 评论 -
linux启动过程(一)
系统启动系统启动阶段依赖于引导 Linux 系统上的硬件。在嵌入式平台中,当系统加电或重置时,会使用一个启动环境。这方面的例子包括 U-Boot、RedBoot 和 Lucent 的 MicroMonitor。嵌入式平台通常都是与引导监视器搭配销售的。这些程序位于目标硬件上的闪存中的某一段特殊区域,它们提供了将 Linux 内核映像下载到闪存并继续执行的方法。除了可以存储并引导 Linux 映转载 2011-11-30 10:49:30 · 529 阅读 · 0 评论 -
x86 段式管理(地址转换后还只是线性地址)
启动代码,如下:在pm.inc中有; 宏 ------------------------------------------------------------------------------------------------------; ; 描述符 ; usage: Descriptor Base, Limit, Attr ; Base: dd ;原创 2011-11-30 10:53:35 · 645 阅读 · 0 评论 -
阿里云里的mysql安装
今天又整里下mysql安装,老是爆:The server quit without updating PID file (/var/lib/mysql/AY1403301919063486b3Z.pid)。照原创 2014-04-18 23:08:18 · 4624 阅读 · 0 评论 -
c++数据结构之链表
1.节点类若用模板则实现只能写在h里头 template class MyNode{public: T* data; MyNode *pre; MyNode *next;public : MyNode(){ this->data=NULL; } MyNode(T *&原创 2012-02-24 11:47:17 · 754 阅读 · 0 评论 -
linux内核之进程调度(一)
linux2.4的进程结构include/linux/sched.htask_struct{volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */unsigned long flags; /* per process flags, defined below */int sigpending; l原创 2011-11-24 12:22:03 · 539 阅读 · 0 评论 -
用bochs安装linux0.11内核
参考:http://www.oldlinux.org/oldlinux/forumdisplay.php?fid=41.先用gcc编译linux0.11内核(不含文件系统)这是别人修改后可以gcc编译的,源码已经放到:\\Cnpc0165-cd\Books\Computer\kernel\linix-0.11\linux-0.11-060618-gcc4步骤:make cl原创 2012-02-23 17:07:38 · 6698 阅读 · 0 评论 -
io端口和IO内存
原帖地址:http://blog.chinaunix.net/uid-21289517-id-1828458.html在驱动程序编写过程中,很少会注意到IO Port和IO Mem的区别。虽然使用一些不符合规范的代码可以达到最终目的,这是极其不推荐使用的。结合下图,我们彻底讲述IO端口和IO内存以及内存之间的关系。主存16M字节的SDRAM,外设是个视频采集卡,上面有16M字节的SDRAM转载 2012-08-10 15:17:14 · 523 阅读 · 0 评论 -
linux内核之elf格式
2.1汇编max.s先看一个简单的汇编max.s .section .datadata_items: .long 3,67,34,222,45,75,54,34,44,33,22,11,66,0 .section .text .globl _start_start: movl $0, %edi # move 0 into th原创 2011-12-22 15:10:39 · 1436 阅读 · 0 评论 -
eclipse+cdt+cgwin环境搭建
1安装eclipse-jee-indigo-win32.zip2安装插件:org.eclipse.cdt.sdk-2.1.1-win32.x86.zip3下载cgwin4配置环境变量 C_INCLUDE_PATH=C:\cygwin\usr\includeLIBRATY_PATH=C:\cygwin\lib5打开eclipse建立managed Make C project原创 2012-05-04 12:00:37 · 806 阅读 · 0 评论 -
c语言数据结构之链表
1 list.h#ifndef _LIST_H#define _LIST_H#include #include #include typedef struct list_node{ void *data; struct list_node * pre; //前 struct list_node* next;//后}NODE;原创 2011-12-21 16:52:00 · 526 阅读 · 0 评论 -
linux内核之进程切换
进程切换 前面所介绍的schedule()中调用了switch_to宏,这个宏实现了进程之间的真正切换,其代码存放于include/ i386/system.h:1 #define switch_to(prev,next,last) do { \2 asm volatile("pushl %原创 2011-12-16 11:45:24 · 531 阅读 · 0 评论 -
eclipse+cdt+mingw(不含cgwin环境)搭建
第一步:下载集成了CDT的eclipsehttp://mirrors.ustc.edu.cn/eclipse/technology/epp/downloads/release/indigo/SR2/eclipse-cpp-indigo-SR2-incubation-win32.zip第二步 :下载mingw-get-inst-20120426.exehttp://sourcef原创 2012-05-07 10:15:50 · 1308 阅读 · 0 评论 -
linux内核之ext2文件系统
我们知道,一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种mkfs命令)格式化成某种格式的文件系统,然后才能存储文件,格式化的过程会在磁盘上写一些管理存储布局的信息。下图是一个磁盘分区格式化成ext2文件系统后的存储布局。图 29.2. ext2文件系统的总体存储布局 文件系统中存储的最小单位是块(Block) ,一个块究竟多大是在格式化时确定的原创 2011-12-29 15:24:00 · 1827 阅读 · 0 评论 -
wxwidget下连接mysql
1.因为DEV-C++ 使用的编译器是gcc, 而MySQL自带的libmysql.dll只支持Visual Stdio。为此,需要从libmysql.dll 生成libmysql.a(静态库)。使用的命令是:Dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmySQL.a-k生成后原创 2012-05-07 17:48:21 · 974 阅读 · 0 评论 -
widget+vc++测试
[转]wxWidgets-2.8.9在VC++ 2005 环境下的安装与配置转自:http://www.cnblogs.com/sun_catboy/archive/2008/11/25/1340881.html1. 在http://www.wxwidgets.org/downloads上下载wxMSW-2.8.9.zip,并将其解压缩至D:"wxWidgets-2.8.92.原创 2012-05-08 11:14:24 · 566 阅读 · 0 评论 -
c++基础之指针
常量指针:指向常量的指针 const int a=9;const int* p=&a; //若写int * p=&a;用g++编译会报错,而gcc不会 注:(void*) 50000000: 把50000000强转为指针 指针常量:指针本身为常量int a=9, b=10;int *p2=&b;int * const p= &a;p=p2;原创 2011-12-12 12:08:48 · 498 阅读 · 0 评论 -
linux内核之ext2文件系统2
下面看看完整的fs的内容 $ od -tx1 -Ax fs000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 boot块*000400 80 00 00 00 00 04 00 00 33 00 00 00 da 03 00 00 //超级块000410 75 00 00 00 01 00 00 00 00原创 2011-12-29 15:22:52 · 627 阅读 · 0 评论 -
c++的拷贝构造函数的思考(当返回对象时,发生什么)
当函数返回对象时(return a),会调用拷贝构造函数生成一个对象给外部用,同时退出时把内部对象析构#include "stdafx.h"#include using namespace std; static int i;class A{public: A(){ cout//(1) 步 constructor i=1原创 2012-04-18 17:16:29 · 1888 阅读 · 0 评论 -
linuxC之目录读取
文件和目录操作的系统函数 本节简要介绍一下文件和目录操作常用的系统函数,常用的文件操作命令如ls、cp、mv等也是基于这些函数实现的。本节的侧重点在于讲解这些函数的工作原理,而不是如何使用它们,理解了实现原理之后再看这些函数的用法就很简单了,请读者自己查阅Man Page了解其用法。stat(2)函数读取文件的inode,然后把inode中的各种文件属性填入一个struct s原创 2011-12-29 16:07:21 · 3264 阅读 · 0 评论