嵌入式硬件--裸机
文章平均质量分 51
OUYANG_LINUX007
这个作者很懒,什么都没留下…
展开
-
OpenJTAG与Jlink/J-link的区别
OpenJTAG与JLink的区别比较:相同点:都同时具备USB转JTAG、USB转串口功能差别:1. 操作系统:OpenJTAG可以用在Windows、Linux下;JLink只能用在Windows下,在Linux下它的调试功能无法使用,只能使用“JLink+USB转串口2合1”中的USB转串口功能2. 集成开发环境:OpenJTAG能用在所有支持GDB调转载 2012-04-04 20:21:41 · 5410 阅读 · 0 评论 -
protus下设计数控电流源简单总结
一个朋友委托我搞一个本科生毕业设计,在protus下设计数控电流源,protus好久没有摸了,这两天小试了下还是大部分都记得,在此设计的数控电流源精度一般,总结如下:1.设计程序的时候发现flag标志位太多,感觉有点混乱,原因是只是大概的流程图设计好了,没有精确到每个部分,也许是时间上的原因2.主程序中没有子函数太少,特别是有些模块中断下处理那是最好不过了,如果不在中断里处理,因时序不对,原创 2012-05-13 17:29:27 · 1579 阅读 · 0 评论 -
2440test测试程序中图片和汉字显示总结
1、用PS(photoshop或其他软件)软件新建一个图片文件,大小240X320,即宽度240像素和高度320像素,其他可以是默认值。这是关键;或者是用qq截屏截取大小240X320.保存格式一定是bmp格式的图片2.Image2LCD软件将图片生产二维数组,格式与程序LCD格式对应,我的是16bpp(5:6:5),输出灰度16位真彩色,最大宽度和高度240X320,输出格式是不要包含图像头原创 2012-05-08 16:08:12 · 1550 阅读 · 2 评论 -
ARM9(S3C2440)的LCD显示——程序实例讲解
结合上一篇文章中的LCD理论知识,下面是结合FL2440开发板的实例程序,所用的LCD是16位320*240操作的大概步骤是先初始化LCD,然后是写我们所需要的函数,最基础的是像素点显示函数,然后是划线函数,字符显示函数,图片显示函数等等,然后就是写主函数完成我们的任务。#include "def.h"#include "option.h"#include "2440addr.h"转载 2012-05-07 14:53:31 · 3644 阅读 · 1 评论 -
S3C2440的LCD显示
今天和大家一起讨论一下S3C2440的LCD显示的问题,希望大家能够多多指教,我说的不对的地方希望大家及时帮我改正,以使我可以增长知识,才能不至于给别人的学习带来不便,呵呵下面先看一下我从别人那转过来的一篇文章,我觉得很有用,看完之后我再说一下自己对这一块的了解,也可以先看看我的理解(下面红字标出)再看开始的这篇文章,因为我说的更通俗,O(∩_∩)O哈哈~。 1. LCD工作的转载 2012-05-07 14:49:20 · 3158 阅读 · 1 评论 -
为什么2440与SDRAM地址线错两位相连?
为什么2440与SDRAM地址线错两位相连? 网上说,错两位是为了32位对齐(地址为8位数据地址,2440位宽为32,错两位,一次跳4byte)。下面是听南方大哥的教程时记录的:由于两个内存合起来“数据位宽”是32位。32时,地址总线的地址LADDR0和LADDR1不需要使用。内存是32位数据宽度,2440的 LADDR0和LADDR1就不用接,从LARRD2开始接到内存的A0转载 2012-04-12 16:14:14 · 3226 阅读 · 2 评论 -
接上板子上的外设,怎么确定它的地址?
1. CPU发出一个地址A2. 存储控制器根据地址A的范围,决定让nGCS0~nGCS7中的哪个引脚输出低电平,假设是nGCS33. 接在nGCS3的芯片就被选中4. 访问这个被选中的芯片的哪个地址呢?由地址线A26~A0决定。 A26~A0有27条地址线,寻址芯片是128M原创 2012-04-11 11:53:51 · 1422 阅读 · 0 评论 -
程序从片内地址0开始,但为什么链接地址又设0x30000000,那不就从0x30000000开始了,反汇编可以看到不是从0开始的
谢谢韦老大和独孤君韦老大回答:1. 裸板程序烧在FLASH上 一上电,肯定从0地址运行2. 但是,0地址要么对应NOR FLASH,要么对应只有4K的片内内存3. 程序要读写数据,或是程序大于4K,怎么办?4. 程序就要复制到SDRAM里去执行5. SDRAM那么大,复制到哪个地址去?能随便选择地址吗6. 不能,要复制到它的链接地址去7. 为什么一定要复制到原创 2012-04-11 10:37:42 · 5347 阅读 · 3 评论 -
I386的体系结构
http://www.kerneltravel.net/journal/ii/part1.htm#_ftn1转载 2012-04-09 14:17:30 · 800 阅读 · 0 评论 -
为什么要设置栈
1.堆栈一定要设置好系统运行需要一定的内存资源,堆栈也会占用一些内存资源,而且堆栈会生长,如果堆栈生长进入其他数据内存空减就会引起系统崩溃。或者内存数据被破坏,或者堆栈被破坏。所以需要初始化堆栈。至于那条伪指令,请参考ARM指令集。 2.你只要有操作函数就必须设置堆栈 如果没有操作函数就可以不用了 3.在x86里,栈是由硬件(cpu)和内存来实现的。栈是由ss,esp,ebp来描述原创 2012-04-08 22:43:41 · 2097 阅读 · 0 评论 -
arm中常用汇编指令
1.MOV PC, LR如果在子程序中LR没有改变,则等同于 RET程序在 调用子程序时,会把 BL SUB_XXXXX 处的下一条指令送入 LR, 这样,当所调用的子程序没有改变LR的值时(注意这里我说说的是在整个子程序中LR没有被改变),返回父程序时,你就可以使用MOV PC, LR2.1: ;Acmp r0, #0beq 1f ; r0==原创 2012-04-07 14:53:16 · 841 阅读 · 0 评论 -
led.asm(2): error: A1163E: Unknown opcode Block, , expecting opcode or Macro 这个是什么原因啊
IOPMOD EQU 0x3FF5000 ;定义IO口模式寄存器IOPDATA EQU 0x3FF5008 ;定义IO口数据寄存器 IMPORT Main AREA Init,CODE,READONLY ENTRY Main LDR R0, =0x3FF0000 LDR R1, =0xE7FFFF80 ;配置SYSCFG,片内4Kcache,4翻译 2012-04-06 11:09:17 · 12136 阅读 · 2 评论 -
JLINK烧写BIN文件到nand、norflash、SDRAM
1. 简要说明 JLink的调试功能、烧写Flash的功能都很强大,但是对于S3C2410、S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢;烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点。本文使用一个间接的方法来实现对S3C2410、S3C2440开发板的Nor、Nand Flash的烧写。原理为:JLink可以很方转载 2012-04-04 20:33:41 · 2106 阅读 · 0 评论 -
Jlink烧写问题
ARM9“裸板”编程授课过程中,发现很多同学都想用笔记本调试2440。无奈亚嵌的JTAG是并口Wiggler,可是现在的笔记本都没有并口,有些人买了usb转并口,可是又多半用不了。上网搜索,相关的文章不多。于是我专门为此做了一些研究,特将一些经验在此分享,希望对有此需求的朋友有所帮助。 目前市面上流行的ARM JTAG方案有3种,一种是J-LINK配IAR,一种是U-LINK配KEIL,原创 2012-04-04 20:10:24 · 4665 阅读 · 4 评论 -
USB概念总结
你在网上找一个usbmon软件,再在机子上插一U盘,你可以看到你想看到的一切。usb hub block diagram 这里需要注意的有三点:1. 是端口和端点的区别,端口(port)是一个usb设备接口,端点(endpoint)是从设备控制芯片上的寄存器。2. 主设备和从设备的区别,只有主设备才有host control 和hub ,对于从设备是原创 2012-05-15 09:42:37 · 2001 阅读 · 0 评论