zhijun1988
码龄12年
关注
提问 私信
  • 博客:50,280
    50,280
    总访问量
  • 7
    原创
  • 987,031
    排名
  • 4
    粉丝
  • 0
    铁粉

个人简介:嵌入式开发

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2013-06-04
博客简介:

zhijun的专栏

查看详细资料
个人成就
  • 获得13次点赞
  • 内容获得1次评论
  • 获得26次收藏
创作历程
  • 1篇
    2022年
  • 10篇
    2014年
  • 23篇
    2013年
成就勋章
TA的专栏
  • C++
    1篇
  • java
    2篇
  • Source Insight
    1篇
  • linux 系统
    7篇
  • lua
    9篇
  • C语言
    9篇
  • linux 驱动
    4篇
  • 串口
    2篇
  • 汇编
    1篇
兴趣领域 设置
  • 嵌入式
    单片机嵌入式硬件
  • 硬件开发
    驱动开发dsp开发arm开发
  • 操作系统
    linuxrisc-v
创作活动更多

新星杯·14天创作挑战营·第9期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛! 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见 https://bbs.csdn.net/topics/619626357 2、文章质量分查询:https://www.csdn.net/qc

473人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

undefined reference to `__exidx_start‘ undefined reference to `__exidx_end‘ 编译错误

undefined reference to `__exidx_start' undefined reference to `__exidx_end' 编译错误
原创
发布博客 2022.06.20 ·
1652 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

J-LINK V10 V11固件

发布资源 2022.03.03 ·
7z

新型的按键扫描程序,仅三行程序

新型的按键扫描程序不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不
转载
发布博客 2014.04.18 ·
762 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

简单的汇编实例注释

ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:  ldr r0, 0x12345678  就是把0x12345678这个地址中的值存放到r0中。  而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构 
原创
发布博客 2014.03.20 ·
3456 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

makefile简单实例

简单的Makefile
原创
发布博客 2014.03.20 ·
1161 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

diff和patch详解与例子

转载自:diff和patch使用指南diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。 diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生
转载
发布博客 2014.03.16 ·
2528 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

strcpy strcmp memcpy源码

好久没有自己写博客了,现在把一些库函数的实现写一下,写在CSDN上,就当做收藏吧char *strcpy(char *dest, const char *src) // strlen(dest) >== strlen(src) { char *str = *dest; if ((NULL == str) || (NULL == src)) { return NUL
原创
发布博客 2014.02.18 ·
806 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

kmalloc分配内核堆空间

kmalloc函数的原型是:[cpp] view plaincopy#include   void *kmalloc(size_t size, int flags);  kmalloc函数说明******size是要分配的块大小******flags分配方式,控制kmalloc分配内存的方式****
转载
发布博客 2014.02.12 ·
1263 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux下的串口系列---struct termios结构体

termios结构体说明 termios结构体中,该结构体一般包括如下的成员:tcflag_t c_iflag;      tcflag_t c_oflag;      tcflag_t c_cflag;      tcflag_t c_lflag;     cc_t     c_cc[NCCS];    其具体意义如下 c_iflag:输入
转载
发布博客 2014.01.09 ·
1041 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

UART

UART编辑通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,通常集成于其他通讯接口的连结上目录1定义2功能
转载
发布博客 2014.01.08 ·
1791 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

UART和RS232/RS485的关系是什么?

串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用。在百度搜索二者的区别,可以看到排在最前面的答案充斥着混淆的概念。就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系。~~       通讯问题,和交
转载
发布博客 2014.01.08 ·
964 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

vim常用命令(全)

键盘移动 (Move)一切都从键盘的移动k -> 上 upj -> 下 downh -> 左 leftl -> 右 rightz -> 重画屏幕,当前光标变成屏幕的第一行 (redraw current line at top of window)CTRL-f -> 跳到下一页 (page down)CTRL-b -> 跳到上一页 (page up)跳跃
转载
发布博客 2014.01.08 ·
1280 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

U-BOOT源码分析及移植

本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单
转载
发布博客 2013.12.31 ·
1033 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

U_boot 的 bootcmd 和bootargs参数详解

转自 :http://linux.chinaunix.net/bbs/archiver/tid-1111568.html    U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。u-bootcmd    前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使
转载
发布博客 2013.12.30 ·
668 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

__asm__ volatile 之 C语言嵌入式汇编

在linux/include/unistd.h中定义的系统调用嵌入汇编宏函数_syscall0。其实展开不难发现就是一个函数,只不过用宏定义了。其中关键的是怎么理解 __asm__ volatile这个语法。对于__asm__ volatile这个固定形式,我们暂且不理会它(可参考http://blog.csdn.net/robbie1314/archive/2011/04/1
转载
发布博客 2013.12.19 ·
1431 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C语言中可变参数的用法——va_list、va_start、va_arg、va_end参数定义

cC可变参目录(?)[+]C语言可变参简介写一个简单的可变参数的C函数 可变参数在编译器中的处理 可变参数在编程中要注意的问题 小结 C语言可变参简介    我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:      int printf( const cha
转载
发布博客 2013.12.16 ·
947 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

linux 中C语言便于调试的宏定义编写及 __FILE__,__FUNCTION__, __LINE__参数使用

在linux编程中,当文件数量变的众多之后,使用gdb调试就是一场灾难。因此在程序中加入合理的打印信息,定位错误出现的文件名,函数名,行号等信息,能更高效的定位到问题的所在。     下面定义了宏,分别是WARNING,INFO,ERROR,SHOW_TIME,DEBUG等。利用了 __FILE__,_FUNCTION__, __LINE__等变量。。。      _FILE__,
转载
发布博客 2013.12.16 ·
1355 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

static inline内联函数

内联函数有些类似于宏。内联函数的代码会被直接嵌入在它被调用的地方,调用几次就嵌入几次,没有使用call指令。这样省去了函数调用时的一些额外开销,比如保存和恢复函数返回地址等,可以加快速度。不过调用次数多的话,会使可执行文件变大,这样会降低速度。相比起宏来说,内核开发者一般更喜欢使用内联函数。因为内联函数没有长度限制,格式限制。编译器还可以检查函数调用方式,以防止其被误用。static in
转载
发布博客 2013.12.11 ·
1454 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

可移植性操作系统串行端口编程指南(中文带书签)

发布资源 2013.12.05 ·
pdf

Linux 操作系统 SIGTERM等信号意义

SIGHUP     终止进程     终端线路挂断SIGINT     终止进程     中断进程SIGQUIT   建立CORE文件终止进程,并且生成core文件SIGILL   建立CORE文件       非法指令SIGTRAP   建立CORE文件       跟踪自陷SIGBUS   建立CORE文件       总线错误SIGSEGV   建立CORE文件  
转载
发布博客 2013.12.05 ·
1774 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏
加载更多