- 博客(23)
- 资源 (11)
- 问答 (3)
- 收藏
- 关注
原创 ImageCraft下的AVR启动代码
以前经常想自己使用编译器编写MCU的C代码,编译器帮我们做了什么。编译器是如何分配变量和代码的。所以就闲着没事去看编译器的安装路径下有什么东东。工作中使用的是ICCAVR编译器和Atmel的atmega64.所以我倒腾的就是这款编译器和MCU~~~。 说实话ICCAVR编译器确实非常简捷方便,但是功能强大(当然了,我没用过其它的编译器o(╯□╰)o)。对于它的基本使用再次不再赘述
2015-03-02 21:36:32
1148
原创 基于AVR128的简单Modbus协议实现
Modbus通讯协议是由Modicon公司在1979年开发的,应用于工业现场控制的总线协议。Modbus通讯系统包括带有可编程控制的芯片节点和公共传输线组成,其目的是用于多节点数据的采集和监控。Modbus协议采用主从模式,通讯系统中有一个主机对多个节点从机进行监控,从机节点最多支持247个。每个从机均有自己独立的从机地址,而且改地址能够被主机识别。能够支持Modbus协议的通讯系统有RS-2
2014-08-14 21:55:53
2139
1
原创 第一个Linux字符设备驱动
目的最近几天学习了基本的字符设备驱动,今天特地写了个字符设备驱动小demo巩固一下。其中也遇到了些许问题,所以就整理了篇日志来记录自己学习的点点滴滴。最初的感悟,刚开始接触字符设备驱动的时候,感觉也好复杂。需要了解register_chrdev_region()、alloc_chrdev_region()、struct file_operations、cdev_init()、cdev_add(
2014-04-17 23:48:50
1004
原创 Linux字符设备驱动编写基本流程
---简介Linux下的MISC简单字符设备驱动虽然使用简单,但却不灵活。只能建立主设备号为10的设备文件。字符设备比较容易理解,同时也能够满足大多数简单的硬件设备字符设备通过文件系统中的名字来读取。这些名字就是文件系统中的特殊文件或者称为设备文件、文件系统的简单结点,一般位于/dev/目录下使用ls进行查看会显示以C开头证明这是字符设备文件crw--w----
2014-04-15 07:28:59
1142
原创 第一个Linux驱动
Linux系统将驱动映射成文件,这些文件称为设备文件或驱动文件,都保存在/dev/目录中。这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易。---编写Linux驱动程序的步骤Linux驱动程序和其他类型的Linux程序一样,也有自己的规则。以下是编写一个基本Linux驱动的一般步骤。1)建立Linux驱动骨架(装载和卸载Linux驱动)
2014-04-15 06:31:50
1155
原创 Android源代码的下载和编译
本文是对《Android深度探索-HAL与驱动开发》中关于此章节的总结,记录自己学习的点点滴滴。Android源代码包含了很多东西,如内嵌在Android系统中的应用程序(拍照、计算器、日历、拨号器等)源码、Android SDK带的各种工具源码、Android NDK源码、HAL源码等等,所以Android源码包非常大。---源码下载 /*配置下载环境*/
2014-04-13 09:03:28
1373
原创 Git使用的简单总结
Git是LInux下一款优秀的源代码管理软件,由Linus编写。---Git的安装#sudo apt-get install git仅仅使用这条命令就可以将Git软件安装到Linux上---Git常用命令命令行下使用man git可以罗列出常用的使用命令---创建版本库**简介 Git的版本库组织方式和其他软件有很大差异。Gi
2014-04-13 08:52:18
958
翻译 Linux2.6.0源码kbuild、Makefile文档翻译
为了学习Linux下的Makefile,从昨天开始决定要翻译一下源码底下/Documentation/kbuild目录下的modules.txt和Makefile.txt说明文档,今天翻译完,从网上找了篇别人的译文对比了下,感觉自己翻译的还算差强人意,所以贴出来记录下自己学习的点点滴滴。
2014-04-10 22:28:55
1244
原创 Linux源码树的搭建
目的编写Linux驱动,必须要简历Linux内核源码树,建立源码树有助于我们更好的学习Linux,但是针对本机系统开发驱动是不需要创建源码树的。因为在/usr/src/目录底下会有本系统对应版本的头文件。本人目录下如图。其中linux-source-3.2.0.tar.bz2软连接指向对应的源码包(这是本人自己下载的)。好吧言归正传,下面分享一下如何构建源码树过程。源码树创建过程
2014-04-08 23:32:52
1121
原创 CAN总线基本认识
什么是CAN全称Controller Area Network---控制器局域网。CAN网络中可以挂接非常多的接入点,并不会像IIC和SPI那样接点受限制。CAN总线最初是德国Bosch公司最先提出的,主要用于汽车电子系统之间的通信。由于CAN协议抗干扰性好,传输距离长,所以广泛应用于工业现场控制通信系统中。CAN总线的具体工作原理这篇博文是本人对过去知识的总结和梳理,所以不会有很多科
2014-04-08 22:37:22
1556
原创 Android驱动移植初识
目的 因为毕设要到公司去做公司给的题目是:基于Android平台的电梯广告机。Android平台和嵌入式系统的通信是通过CAN总线进行的。具体的硬件是MarsBoard-imx6q火星开发板、Phillip22寸显示器、usb转CAN收发器。虽说是电子专业但是以前是主做MCU和汇编的。对于Android做嵌入式还是没接触过。随着项目的进行,我会写一系列博客来记录曾经遇到的困惑,解
2014-04-08 22:26:30
1179
原创 win32汇编语言学习笔记2
Intel cpu 与windows发展史------win32汇编语言的硬件平台本人正在学习win32汇编语言为了方便学习特别做了笔记,谢谢指正咯 哼(ˉ(∞)ˉ)唧1978年6月intel公司推出第一个16位处理器,其主频为4.43GmHZ集成晶体管数目2.9万个采用了20条地址总线可寻址范围1M 1982年 推出80286集成了12万个晶体管,主频提高到12Mhz,其实在
2011-11-14 15:44:07
501
原创 汇编语言学习笔记11
标志寄存器 先来总结一下以前的寄存器的作用:1 存储相关指令的执行结果2 为cpu执行相关指令提供的行为依据3 控制cpu的相关工作方式。 本课学习的标志寄存器也是 16位的,其中存储的信息通常被称为程序状态字(psw)标志寄存器的16位有9位分别表示了不同的状态 如下0 cf 1 2 pf34 af5 6 zf
2011-10-26 15:03:50
553
原创 汇编语言学习笔记10
call和ret指令call和ret指令都能修改ip,都是转移指令,这两个指令配合使用来进行调用小程序。 ret指令用栈中的数据修改ip的内容,从而实现近转移,而retf指令用栈中的数据来修改 cs 和ip从而实现远转移, cpu执行ret指令时相当于执行 ip=((ss)*16+(sp)) sp=sp+2; cpu执行retf指令的时候就相当于执行ip=(
2011-10-25 14:44:19
452
原创 汇编语言学习笔记9
转移指令的原理 刚开始的时候就学了转移指令,例如 jmp bx。现在就系统的学习一下。首先转移分为短转移和近转移,短转移修改ip的范围是-128--127近转移的范围--32768--32767.这说的是段内转移的情况,而按照专一的类型又分为:无条件转移(jmp转移)条件转移指令 循环指令 中断等。 首先认识一个操作符 offset 这是一个由编译
2011-10-24 15:09:19
439
原创 汇编语言学习笔记8
数据处理的两个基本问题 由于浏览器的原因,本人费劲写的 第七篇日志被网络无情的封杀了= =,(+﹏+)~狂晕,好吧接着写第八篇。。。 现在我们对过去所学的基本内容进行一下梳理,我们先来梳理一下基本寄存器的用法和汇编语言格式。 在访问内存地址的时候,我们只能用 bx,si,di,bp这四个寄存器 其实就是这种寻址方式 :mov ax,[bx] mo
2011-10-20 15:21:18
562
原创 汇编语言学习笔记6
包含多个段的程序 以前编写的程序我们都用到了一个段-代码段。要是程序需要其他空间来存放数据的话,我们就需要定义其他的段了。我们以前的操作的数据信息都是从内存单元里取得,并没有操作我们想要操作的数据,定义其他的段就是给我们提供一个个的空间来存放我们自己想要操作的信息。
2011-10-17 15:09:38
744
原创 汇编语言学习笔记5
[bx]和loop指令 在汇编语言中[]中的内容一般都是数字或运算表达式,整个的[]和里边的内容表示了内存地址。例如 mov al,[0]代表把[0]地址处信息传送到al中去。 loop引文意思是循环的意思,在汇编语言中是一条循环指令。以后的学习主要以编程实例为主,很
2011-10-16 10:23:54
686
原创 汇编语言学习笔记
汇编语言学习笔记4--第一个汇编程序始进行汇编语言的实际编程体验了。本人用的编译工具是-- masm软件 连接软件是 下面先看一段小程序。关于软件的问题以后慢慢讨论。assume cs:code
2011-10-14 13:06:29
504
原创 汇编语言学习笔记3
寄存器(访问内存) 内存的存储单位也是字节,所以一个寄存器可以存储一个子单元即两个内存单元的信息。先介绍一下数据寄存器DS,数据寄存器是用来存放访问数据的段地址:例如以下代码->mov bx,1000h ;mov ds,bx; mov al,[0];可以解释为
2011-10-12 14:44:41
427
原创 汇编语言学习笔记2
汇编语言学习笔记2--寄存器 一个cpu是由运算器,控制器,寄存器等期间组成,这些器件是有内部总线连接的。运算器进行运算(信息处理),寄存器进行信息存储的,控制器进行控制各种期间的工作。程序员对cpu的控制就是通过指令改变寄存器中的存储信息进行间接地控制cpu的。当然不
2011-10-10 15:34:33
693
原创 汇编语言学习笔记
汇编语言学习笔记1 进行学习8086系列汇编语言,针对《王爽汇编语言》学习心得体会。。。汇编语言是基于硬件的编程,首先要有一台PC机。当然纯粹的X86计算机已经不存在,但是有一台兼容INTEL CPU 的计算机完全满足学习需求。汇编语言适合具体的微处理器相联系的,由于
2011-10-08 13:37:54
718
Linux下Makefile说明文档翻译
2014-04-10
CAN总线协议2.0
2014-03-26
Delphi showmessage消息提示框被 窗体缩略图覆盖。
2015-11-28
Delphi XE6 IndyTCPClient
2015-10-12
物联网芯片向路由器运行DHCP,无法获得offer
2015-05-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人