![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 75
乘风life
学如逆水行舟,不进则退!
展开
-
对.lds链接脚本文件的分析
对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下 GNU官方网站上:http://www.gnu.org/对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( lda转载 2017-03-28 09:01:34 · 322 阅读 · 0 评论 -
u-boot移植(二)支持串口及u-boot框架
从这里开始,我们就要跟随源代码,分析源代码,修改相应部分,使得代码支持我们自己的开发板从链接文件中我们可以得知代码从start.S部分开始执行,现在我们进入start.S文件,分析此文件所做的工作1、设置CPU模式为管理模式2、关看门狗3、设置时钟比例 FCLK:HCLK:PCLK = 4:2:1,FCLK默认为120MHZ4、bl cpu_init_crit --原创 2017-06-25 16:15:57 · 410 阅读 · 0 评论 -
u-boot移植(三)使支持norflash
将u-boot 2012.04.01移植到JZ2440开发板 让u-boot支持自己的开发板比较简单,因为norflash的接口跟内存很相似,我们不需要自己实现NORFLASH的操作集,u-boot中含有norfalsh的操作集我们要做的工作就是根据自己开发板上的norflash的特性,在u-boot的norflash的匹配表中加入自己的norflash的数据u-boot中 b原创 2017-06-25 17:16:50 · 483 阅读 · 0 评论 -
u-boot 移植(一) 准备工作
将u-boot 2012.04.01移植到JZ2440开发板 拿到一个UBOOT,要知道怎样编译和修改可以看一看顶层目录下的README文件,其中有如下内容Building the Software:======================U-Boot is intended to be simple to build. After installing thesource原创 2017-06-25 16:06:28 · 390 阅读 · 0 评论 -
JZ2440点灯程序
离找工作只有不到三个月的时间,为了复习嵌入式方面的知识,这里会写一系列的博客,包含裸机,内核移植,驱动。为了督促自己遇到难点时不要放弃,这里粘贴一条《高质量程序设计指南C++C语言》中的一段名言:如果放弃一次,那么碰到下一个挫折时我就会继续放弃;如果坚持而成功,那么碰到下一个挑战时我就会激励自己再次取得成功原创 2017-06-07 11:39:20 · 738 阅读 · 0 评论 -
JZ2440存储控制器
s3c2440的“存储控制器”提供了访问外部设备的信号在JZ2440共有8个bank,每个bank的最大访问容量为128Mbank0~bank5支持外接ROM,SRAMbank6~bank7支持外接ROM,SRAM,SDRAM在外接SDRAM时,支持自刷新,和省电模式S3C2440理论上可寻址4G地址范围,可实际上除了外接的8个bank可最大寻址1G空间外,还有一部分原创 2017-06-08 15:49:09 · 561 阅读 · 0 评论 -
JZ2440内存管理单元MMU
内存管理单元(memory management unit),简称MMU,它负责虚拟地址到物理地址的映射arm采用页表的形式将一个虚拟地址转换成物理地址,以段的方式进行转换时只用到一级页表,以页的方式进行转换则会用到二级页表。插入图具体的映射过程如下,假设CPU发出一个32位的虚拟地址addr首先根据页表基值寄存器的[31:14]位找到页表(假设内存地址为P),原创 2017-06-09 16:05:35 · 545 阅读 · 0 评论 -
JZ2440定时器
S3C2440时钟控制逻辑给整个芯片提供了3种时钟:FCLK:用于CPU核HCLK:用于AHB总线上设备,比如存储控制器,中断控制器,LCD控制器,DMA和USB主机模块。PCLK:用于APB总线上的设备,比如WATCHDOG,IIC,PWM定时器,MMC接口,ADC,UART,GPIO,RTC,SPI开发板上的晶振为12MHZ,为了提高频率,需要时钟控制逻辑PLL提高系统时钟原创 2017-06-13 10:27:13 · 758 阅读 · 0 评论 -
JZ2440 LCD学习笔记
S3C2440支持STN、TFT、SEC TFT三种类型的LCD显示器TFT LCD的TTL信号VSYNC :垂直同步信号HSYNC :水平同步信号HCLK :像素时钟信号VD[23:0] :数据信号LEND :行结束信号PWREN :电源开关信号S3C2440 LCD控制器的内部结构如下图插图原创 2017-06-19 16:04:40 · 699 阅读 · 0 评论 -
JZ2440 ADC和触摸屏学习笔记
S3C2440的CMOS模数转换器可以接收8个通道的模拟信号输入,并将它们转换成10位的二进制数据S3C2440的触摸屏接口向外提供4个控制引脚(XP,XM,YP,YM)与触摸屏的直接相连。S3C2440的ADC和触摸屏机构图如下所示图中有两个中断信号:INT_ADC,INT_TC,前者表示A/D转换已经完成,后者表示触摸屏被按下了,或者弹起了。在使用触摸屏是AIN[7:4]被用来原创 2017-06-21 15:08:03 · 1670 阅读 · 0 评论 -
为什么代码和数据要分开存放成代码段和数据段
原文地址:http://www.cnblogs.com/yeahwell/archive/2013/03/25/5226045.html在百度里面看到这样一个问题和答案,记录一下。汇编中把数据段和代码段定义在同一段内有好处么? 悬赏分:10 -解决时间:2009-11-12 14:58在汇编语言,把代码段和数据段放在同一段内,在伪指令定义变量时位置有何要求么? 放在S转载 2017-05-30 10:52:21 · 5206 阅读 · 1 评论 -
JZ2440 系统时钟
时钟控制逻辑给整个芯片提供了三种时钟FCLK:用于CPU内核HCLK:用于AHB总线上设备,比如cpu核,存储控制器,中断控制器,lcd控制器,DMA控制器,和USB主机模块,主要用于高性能模块PCLK:用于APB总线上设备,比如WATCHDOG,IIS,I2C,PWM定时器,MMC接口,ADC,UART,GPIO,RTC和SPI。S3C2410 CPU 工作电压1.8v 主频原创 2017-05-05 17:37:12 · 533 阅读 · 0 评论 -
JZ2440看门狗分析
使用WATCHDOG定时器的“WATCHDOG”功能时,在正常的程序中,必须不断重新设置WTCNT寄存器使得它不为零,这个可以保证系统不被重新启动,这称为“喂狗”,当程序崩溃,不能喂狗,计数值达到0后系统将被重新启动,这样程序将重新运行。这就避免了各类系统错误时系统彻底死机。WATCHDOG需要设置的三个寄存器:(1)WTCON寄存器(WATCHDOG TIMER CONTROL)原创 2017-05-05 17:27:30 · 712 阅读 · 0 评论 -
同步串行通信与异步串行通信
转载地址:http://blog.chinaunix.net/uid-22778496-id-2114647.html串行通信是微机接口的一个重要组成部分,有着极其广泛的应用。随着微机特别是单片机的发展,其应用已从单机逐渐转向多机或联网,而多机应用的关键又在微机通信。微机通信有串行和并行两种通信方式,并行通信可以提高数据交换速度而串行通信可以节省系统资源,降低系统成本。串行通信又分为同步串转载 2017-05-12 20:54:48 · 2031 阅读 · 1 评论 -
ARM工作模式与中断
文章转载自:http://blog.chinaunix.net/uid-26404201-id-2998793.html在ARM处理器7种运行模式中,除用户模式外,其余6种模式称为非用户模式或特权模式,其中除用户模式和系统模式以外的5种又称为异常模式。在非特权模式(用户模式)下,不能对CPSR寄存器设置,只能读取CPSR的值。ARM汇编进入默认模式的是管理模式。CPSR的控制位共有8位转载 2017-04-04 11:32:46 · 1190 阅读 · 0 评论 -
u-boot mkconfig 文件分析
#!/bin/sh -e# Script to create header files and links to configure# U-Boot for a specific board.## Parameters: Target Architecture CPU Board [VENDOR] [SOC] //注释此文件参数形式## (C) 2002原创 2017-04-08 15:05:05 · 301 阅读 · 0 评论 -
u-boot移植(五)使支持DM9000
将u-boot 2012.04.01移植到JZ2440开发板 DM9000的移植比较简单,因为其实u-boot内部已经支持了DM9000网卡,不过smdk2410默认使用的是cs8900网卡,我们要做的工作就是将支持DM9000的相关代码链入u-boot,然后将cs8900的相关代码替换成DM9000的相关代码。DM9000的初始化函数为eth_initialize(gd->bd),它原创 2017-06-27 10:14:36 · 367 阅读 · 0 评论