[置顶] 个人主页

摘要: 自从本科毕业之后就没再更新过博客了,不如就贴一个我的个人主页吧: https://www.junjieshen.com/ (这个网站是在GitHub上host的,应该不会被墙。。) 我会在上面更新联系方式和动态。 阅读全文
posted @ 2020-03-18 14:58 Junjie Shen 阅读(242) 评论(0) 推荐(0) 编辑

mips-linux-gcc交叉编译工具链搭建小结

摘要: 这几天开始做毕业设计了,MPEG2解码的MIPS实现,代码啥的网上一大堆,最大的困难也许不是理解代码,而是搭建环境,也就是搭建mips-linux-gcc交叉编译的环境。网上铺天盖地的都是arm-linux-gcc工具链的教程,唯独MIPS这一块资料很是匮乏,就连极少数的几篇讲搭建工具链的博文都是互相copy的。两天一夜,终于把工具链给搞定了,期间的痛苦也只有自己能体会,那是一种在茫茫大海中寻求救援的无助感。每次碰到问题,问谷歌或百度大部分回答都是牛头不对马嘴,有些人可能相对严谨的解决,但也不能做到面面俱到。事实上,对于我们这种新手,最大的帮助就是面面俱到:对可能遇到的问题都有合理的解释和解决 阅读全文
posted @ 2012-12-05 00:11 Junjie Shen 阅读(19069) 评论(1) 推荐(2) 编辑

[shell]计算未知个数数据的平均值

摘要: 今天嵌入式课上老师出了这么一道题目:请编写一个shell脚本计算未知输入数据的平均值当时我就懵了,数据个数是未知的,那怎么得到它的个数呢,难道一个一个读入赋值运算么?经过翻阅相关书籍,才发现,shell里面还有几个非常实用的系统变量:1 $# 程序命令行参数数目2 $? 前一个命令的返回值3 $0 当前程序名4 $n 命令行参数,如$1为第一个参数,$2为第二个,以此类推5 $* 以("$1 $2 $3 $4 ...")的形式保存所有输入命令行参数6 $@ 以("$1" "$2" "$3" ...)的形式保存所有输 阅读全文
posted @ 2012-05-11 16:14 Junjie Shen 阅读(1671) 评论(1) 推荐(0) 编辑

vim编辑器的配置---让你的代码更加易读

摘要: vim编辑器的配置,中文显示等 阅读全文
posted @ 2011-08-29 20:49 Junjie Shen 阅读(522) 评论(1) 推荐(1) 编辑

C中的野指针—如何避免

摘要: 先看一个例子:struct student{ char * name; int score;}stu, *pstu;int main(void){ strcpy(stu.name, "Jimy"); stu.score = 99; return 0;}这是很多人都容易犯的错误:定义了结构体变量stu,但结构体内部的char * name在定义结构体时只是为其分配了4字节的内存,没有指向一个合法的地址,这时其指针指向的区域只是一些乱码,有事还没有访问权限。这就是我们通常所说的野指针,它是许多程序bug的根源。为了避免出现野指针,通常我们需要将指针初始化为NULL,用完后也为其 阅读全文
posted @ 2011-08-04 23:34 Junjie Shen 阅读(1581) 评论(0) 推荐(0) 编辑

基于Philips MF RC522的ISO14443A标准卡读写

摘要: 好久没写点什么了,前一阵子做了14443A标准卡的读写,底层驱动都已经写好了,所以主要是一些搭积木的工作,但是也应该记点下来。---------------------------------------------------无知的分割线----------------------------------------------------笔者用的标准卡是mifare MF1 IC S70,具有4Kb的EEPROM,分为32个sector(每个sector有4个block)和8个sector(每个sector有16个block),工作频率13.56MHz,这里得说一下,S70比S50的EEP 阅读全文
posted @ 2011-07-29 00:25 Junjie Shen 阅读(1702) 评论(1) 推荐(0) 编辑

[C#学习笔记02]理解值和引用

摘要: 值类型和类类型所有基本数据类型(如int,float,double和char)统称为值类型。将一个变量声明为一个值类型时,编译器将生成代码来分配足以容纳这种值的一个内存块。如,声明一个int型的变量会导致编译器分配4字节的内存(32位)。类类型则不同。声明一个Circle类变量时,编译器不会生成代码来分配足以容纳一个Circle的内存块。相反,它唯一做的事情就是分配一片内存,其中刚好可以容纳一个地址。以后,Circle实际占据的内存块的地址会填充到这里。这个地址也称为对内存块的一个引用。Circle对象实际占有的内存是在使用new关键字来创建对象时分配的。类是引用类型的一个例子。在引用类型中, 阅读全文
posted @ 2011-07-18 12:32 Junjie Shen 阅读(457) 评论(0) 推荐(0) 编辑

[uC/OS-II]基本操作:新建任务,分配信号量

摘要: 对于习惯了单片机直接操作寄存器的人来说,操作系统是个云里雾里的东西,但是uC/OS-II不同,这是一个对底层驱动人员很好的理解操作系统各种概念的一个袖珍型嵌入式操作系统,uC/OS-II作为一个多任务的实时内核,允许建立多达63个用户任务。根据任务优先级和程序运行的情况,决定什么时候从一个任务切换到另一个任务。首先让我们来看下uC/OS-II的Main函数里面放的是什么:/* 定义TaskStart任务的堆栈空间 */#define APP_CFG_TASK_START_STK_SIZE 512/* 任务优先级 */#define APP_CFG_TASK_START_PRIO 4stati. 阅读全文
posted @ 2011-07-14 16:05 Junjie Shen 阅读(990) 评论(0) 推荐(0) 编辑

Ubuntu 9.10下KScope的安装

摘要: 最近一直在看韦东山的《嵌入式linux应用开发》这书,对于初学者来说有的地方讲的过于粗糙,就像“嵌入式linux开发环境构建”这章,关于linux下的一些命令讲的并不是很清楚,我也是摸索了很久才把书上说的开发环境搭建好,期间的痛苦就不一一细数了。。。作为一款linux下源代码阅读编辑的利器,我们自然不能把它忽视了,但是Ubuntu 9.10版本下并不能像安装其他软件一样直接apt-get install,所以必须出狠招才行!下面是经过我的验证后能成功安装kscope的方法:------------------------------------------------------------- 阅读全文
posted @ 2011-06-30 19:06 Junjie Shen 阅读(927) 评论(0) 推荐(0) 编辑