自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小孩儿的专栏

从今天开始,开通我的技术博客,慢慢进步

  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 ubuntu中的rsyslog

Rsyslog 是一个 syslogd 的多线程增强版,依然基于Syslog协议(linux6之前默认使用syslog程序,centos6用rsyslog所取代)完成系统日志的处理转发,官方形容它是一个极速(如火箭般快速)的日志处理系统。

2024-01-25 23:59:41 1950

原创 gcc针对部分代码取消编译优化

为了提高编译和运行速度,或者为了减少代码段大小,我们常常需要使用编译优化。默认是-O0, 我们可以修改为-O1, -O2,-Os,-O3等。但是编译优化有时候并不一定优化到最佳的效果,或者优化的结果需要某些支持才能正确执行。我曾经碰到过一个现象:在函数func1()内部定义一个数组:void func1(){ uint8_t slot_table[2][8] = {{0,4,1,5,2,6,3,7},{8,12,9,13,10,14,11,15}}; ...... uin

2020-06-29 10:12:30 6710

原创 RISC-V 使能、禁止、恢复全局中断

RISC-V的全局中断标志是在mstatus的MIE字段中。所以对全局中断进行操作时,配置MIE字段即可。禁止中断#define disable_irq() do {asm volatile ("csrr mstatus, 0x0");} while(0)使能中断:0x8表示mstatus的第3bit,即MIE字段,设置为1表示使能全局中断#define enable_irq() do {asm volatile ("csrr mstatus, 0x8");} while(0)不过这种简单粗暴

2020-06-15 15:19:30 4284 1

原创 RISC-V 不定长的指令周期

在实际cpu的运行过程中,由于CPU存在分支预测功能,beq指令的周期不是固定的。比如有8级流水的CPU,beq的指令周期有1-8个时钟周期(还是7个?目前我调试的时候发现最多的是7个)。另外,即使对于lw指令,其指令周期也不是固定的。...

2020-06-08 18:42:47 2821 3

原创 RISC-V GCC下使用inline

目前在做性能优化,就是在最短的时间内能跑完一个完整的神经网络,因此对代码的执行时间比较敏感。今天发现在头文件中定义的static inline函数,编译之后在两个源文件中分别定义了static函数,并没有实现inline该有的功能。甚至比普通的函数还差,因为同样的代码拷贝了两份,代码段变大了。于是考虑把static去掉看看,发现直接报告"undefined reference"。为了排除多文件使用的影响,写了一个inline测试函数do_something(),直接仅仅在一个c源文件(test.c)中定义和

2020-06-08 18:03:35 426

原创 python中的三个单引号

Python中的三个单引号表示多行注释,相当于C语言的/*xxxxxx*/在Python中,使用三个单引号进行多行注释,比如:'''这是多行注释,用三个单引号这是多行注释,用三个单引号 这是多行注释,用三个单引号'''print("Hello, World!")...

2019-10-11 09:48:12 5458 2

原创 Vim常用命令

一般模式下操作o: 在当前行之下新开一行,并把光标置于行首v/ctrl+v: 可以分块拷贝,列模式hjkl: 光标移动1gg: 跳到第一行的行首,即文件头2gg: 跳到第二行的行首G:跳到文件尾在某一行中跳到某列:0(数字零):行首$: 行末fx:搜索当前行中下一个出现字母x的地方。比如fb复制、粘贴:yy: 复制nyy: 复制当前行...

2019-09-26 17:44:13 118

转载 从编译原理的角度看C语言是如何转换成汇编语言的?

大家都知道计算机只能处理和识别二进制指令,而我们利用各种高级编程语言所编写的程序,要经过一些列的处理步骤,最终转变为汇编指令,再最后转变为机器指令。以上这些转变是如何发生的就属于大名鼎鼎的“编译原理”所研究的范畴,作为计算机专业学生,它的重要性毫无质疑,自然也是必修课。而我们几年所要给大家讲的是高级编程语言到汇编语言这一转变的过程,后面就以C语言为例。...

2019-09-26 17:41:48 1715

原创 对于数组名取地址

对普通变量取地址我们很熟悉,可是对于数组名取地址是个什么东西呢?数组名可是指向数组第一个元素的地址啊。前两天有个同事这么写:void func(char *name);main(){    char ifname[16] = "abcd";   func((char*)&ifname);}以前一直认为,数组名做函数参数时,被转换为指针类型,再对它取地址,那就是地

2012-02-12 23:23:10 308

原创 悲剧的西二旗城铁

<br />昌平线开通之后,早上过来的时候发现站台上排队等候西二旗往上地方向的地铁的乘客更多了,他们更挤不上车了。悲剧啊

2011-01-04 08:58:00 1901

原创 车祸

<br />今天早上刚出小区门就看见yuequanlu的路口处马路中间一堆垃圾,一只黑色的狗在寻找着它的食物,我还担心狗会被来车撞上。近前才发现更应该担心的不是狗,而是推垃圾车的清洁工人。一辆黑色轿车和一辆手推垃圾车停在路边,轿车发动机部位顶上布满了垃圾。电视上人被车撞了总是会翻到车顶,不知道清洁工人伤势如何。地上没有血,但愿安好。

2010-12-17 09:10:00 2598

原创 第一次使用串口

<br />今天第一次使用串口,第一次连接了连接了公司的设备,输入一些命令,看到一些结构,有点儿兴奋。虽然知道没啥的,只是万事开头难,每一步慢慢的成长都离不开同事的热情帮助!

2010-12-10 17:50:00 358 1

原创 昨天晚上装了一个virtualbox和一个ubuntu,感觉还不错,嘿嘿。

<br />不过电脑变慢了,因为俺的老电脑内存才1G,gg说现在老内存条老贵了,这可怎么办好呢

2010-12-10 08:51:00 298

原创 速记

210=1024=1K216=64K220=1024K=1M

2010-12-08 22:20:00 349

原创 lint

<br />今天早上用lint时发现一个错误,在文件ccc中报错:函数read(int a,tu b, int c)有太多参数,错误显示read函数只有两个参数。检查了好久,read()函数的调用肯定没问题,可是就是找不出错误的原因。<br />tu结构是在文件aaa.h中定义的一个结构,read()函数是在文件bbb.h中声明,在bbb.c中定义的一个函数,然后在bbb.c中#include aaa.h。lint bbb.c时没有发现错误,但是lint ccc.c时就出错了。后来用tornado来进行编译

2010-12-07 14:20:00 287

原创 闲谈

<br />早上在五道口站外面看到两个老年乞丐在聊天,个个都是红光满面,精神饱满。不知道他们是不是聊了昨天的收入,或者交流经验

2010-12-07 09:03:00 256

原创 异或

<br />任何值与0异或,值不变。<br />任何值只有与其本身异或,异或结果才为0。

2010-11-15 16:50:00 297

原创 G1字节

<br />1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />REI<br />RDI<br />保留<br /> <br />备用<br /> <br /><br /><br />G1的b1—b4值的范围为0-15,而B3只能在一帧中检测出最多8个误码块,也就是说G1中b1—b4的值0-8(0b0000-0b1000)表示检测0-8个误码块,其余7个值(9-15)均被当成无误码块。<br /><br />b6、b7留作选用比特。如果不用,应将其

2010-11-15 16:46:00 520

原创 枚举数组

<br />前些天弄了个枚举数组,用turbo c 运行是没问题的,不知道用vc++怎么样。<br />挺有意思的:<br />typedef enum _c_byte<br />{<br />         C1,<br />         C2,<br />         C3,<br />         C5,<br />         C6,<br />         C7,<br />         C_BYTE_END<br />}d_byte;<br /> <br />c_byt

2010-11-15 11:16:00 796

原创 今天的收获

今天看了C语言中声明的“右左法则”,声明中的优先级,用typedef为数据类型创建别名。以前看到那些乱七八糟的声明就头疼,也记不住,都是在考试之前匆匆的再复习一下,然后上战场。现在好多了,哈哈。

2010-11-14 21:15:00 294

原创 条件编译

<br />(1)<br />#define CHINA<br /> <br />#ifdef CHINA<br />       #define BEIJING  1<br />#else<br />       #define WC   1<br />#endif<br /> <br />表示:如果前面已经定义过CHINA(可以试“#define CHINA”,也可以写为#define CHINA 0等等任何的),就编译:<br />#define BEIJING  1<br />如果没有,就编译<br

2010-11-14 15:46:00 351

原创 变量名与变量值

<br />研一时,很偶然的翻开谭浩强老先生的《C程序设计》(是师姐的书,俺的老早就卖了,估计当时觉得这本书写得不够好),很偶然的看到关于变量名的一段话:“变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。”<br />当时很震惊上课的时候居然没有发现这句蛮有深意的话语,可是研一的时候还是没有完全明白,只是知道有这么几个东西:变量名、内存地址、变量值。后来看到指针的地方,说到了“符号表”的这

2010-11-13 22:06:00 4686 2

LibSVM-2.6 程序代码注释

LibSVM-2.6 程序代码注释。上海交通大学一个研究生写的,注释得很详细,非常赞! 在网上找了很久都找不到啊,以前的很多链接都失效了,郁闷!不要分,大家好好享用吧!

2009-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除