百问网精智JZ2440开发板使用手册 S3C2440
S3C2440开发平台基本操作
BIOS在下載完成時,會確認是否執行下載的程式,利用此 功能來引導LINUX和Windows CE及使用者自己編譯的應 用程式。
設定BIOS配置參數
圖6.9 BIOS配置畫面
❖執行功能[7],則會出現如圖6.9所示的15個配置選項。
圖6.10 下載執行位置設定
➢“USB host is connected. Waiting a download.”說明 USB驅動程式已正確啟動了, 可透過USB介面下載了。
Байду номын сангаас.1 2440開發平台的配置與連接
❖ 開始執行後續相關的實驗,因此需對S3C2440開發 平台做初步的測試與應用,以驗證本平台的相關資 源。
❖ 在實驗板中已燒錄的作業系統
Windows CE Linux 統一燒錄在NAND Flash裡面。
實驗板相關跳線設定
❖ 啟動模式的選擇,是透過J21(OM0)跳線來決定的。
DNW設定後狀態圖
圖6.2 DNW狀態列顯示圖
❖ 配置好時,在ToolBar中
選擇Serial Port->Connect,若是設定正確,在視 窗的標題列,可看到上圖顯示的狀態訊 息”COM1,115200bps”
若使用USB轉RS-232纜線的話,必須修改COM Port編號,因為虛擬的COM埠可能超過COM4編 號。
使用USB纜線將S3C2440開發平台(B型接頭)與PC主 機相連。
12V電源連接到開發平台上。
有液晶螢幕的話,可連接上液晶螢幕和觸控螢幕(J25和 JP26)。
喇叭輸入連接到J2音效輸出接頭(藍色插座)。
PC主機終端機的配置方式
s3c2440芯片中文手册-11 UART
s3c2440A UART提供了一个参考作为回送模式的测试模式,以帮助孤立通讯连接中的错误。这个模 式结构上使能在UART中的RXD和TXD连接。在此模式下发送的数据通过RXD接收到接收器。该特 点是允许处理器验证内部传输和每个SIO通道的接收数据通道。该模式通过设置UART控制寄2440A 中文 Datasheet 第十一章 UART
10.4.9 红外模式
联系信箱: admin@ Forum: /
波特率错误公差 Baud-Rate Error Tolerance UART帧错误应该少于 1.87%(3/160). tUPCLK = (UBRDIVn + 1) x 16 x 1Frame / PCLK tUPCLK : Real UART Clock tUEXACT = 1Frame / baud-rate tUEXACT : Ideal UART Clock UART error = (tUPCLK – tUEXACT) / tUEXACT x 100% 注: 1. 1Frame = start bit + data bit + parity bit + stop bit. 2. 在特定条件下,我们支持波特率最高达到 921.6K bps。例如,当PCLK为 60MHz, 你可以在 1.69UART错误公差下使用 921.6K bps under UART error of 1.69%.
10.4.2 数据接收
如数据发送,接收的数据帧是可编程的。其包括一个开始位,5~8 个数据位,一个可选的 奇偶校验位和 1~2 个停止位,其可由线性控制寄存器 ULCONn 来设置。接收器可以侦测溢 出错误,奇偶校验错误,帧错误和终止条件,每个错误都可以设置一个错误标志。 - 溢出错误是指在旧数据被读取前新数据覆盖了旧数据。 - 奇偶校验错误是指接收器侦测到一个不希望的奇偶条件。 - 帧错误是指接收到的数据没有一个有效的停止位。 - 终止条件是指 RxDn 输入保持逻辑 0 状态长于一个帧的传输时间。
S3C2410中文手册第17章_实时时钟
RTC 节拍时间是用于中断请求。TICNT 寄存器有一个中断使能位和对于中断的计数器值。 当节拍时间中断出现时,计数器的值为 0。中断周期如下:
Period = ( n+1 ) / 128 second n: 节拍计数器值 (1~127)
RTC 节拍时间可以用于实时操作系统内核时间节拍。如果时间节拍由 RTC 时间节拍生成, 与实时操作系统功能相关的时间就会和实时同步。
TICK TIME COUNT REGISTER (TICNT)
寄存器
地址
读写
TICNT
0x57000044(L)
R/W
0x57000047(B) (字节)
描述 节拍时间计数寄存器
复位值
0x0
TICNT TICK INT ENABLE
位
[7] 节拍时间中断使能
描述
初始值
0
0 = 无效 1 = 有效
TICK TIME COUNT [6:0] 节拍时间计数值 (1~127).
000000
该计数器的值在内部减少,工作期间用户不能读取该计数
器值。
17.4.3 RTC 报警控制寄存器
RTC ALARM CONTROL REGISTER (RTCALM)
RTCALM 寄 存 器 决 定 了 报 警 使 能 和 报 警 时 间 。 在 掉 电 模 式 下 RTCALM 寄 存 器 通 过
S3C2440A 中文 Datasheet 第十七章 实时时钟
17.3.2 读写寄存器
为了写RTC模块中的BCD寄存器,RTCCON寄存器的位 0 必须置 1。为了显示秒分小时星期 日月年,CPU应该分别读取在RTC模块中的BCDSEC,BCDMIN,BCDHOUR,BCDDAY,
ARM samsung 2440中文手册 s3c2440a_16ADC&TSC
第十六章ADC和触摸屏接口16.1概述10位CMOS的ADC(模数转换器)是有8通道模拟输入的循环类型设备。
其转换模拟输入信号到10位的数字编码,最大的转换率是在2.5MHz转换时钟下达到500KSPS。
AD转换器支持片上采样和保持功能及掉电模式。
触摸屏接口可以控制或选择触摸屏触点用于XY坐标的转换。
触摸屏接口包括触摸触点控制逻辑和有中断产生逻辑的ADC接口逻辑。
16.2特点-分辨率:10位-微分线性误差:±1.0LSB-积分线性误差:±2.0LSB-最大转换速率:500KSPS-低功耗-供电电压:3.3V-输入模拟电压范围:0~3.3V-片上采样保持功能-普通转换模式-分离的XY坐标转换摸-自动连续XY坐标转换模式-等待中断模式16.3ADC及触摸屏接口操作模块图如图16-1所示AD转换器和触摸屏接口的功能模块图。
注意AD转换器设备是一个循环类型。
注意(图标)当触摸屏接口使用时,XM或PM应该接触摸屏接口的地。
当触摸屏设备不使用时,XM或PM应该连接模拟输入信号作为普通ADC转换用。
16.4功能描述16.4.1AD转换时间当GCLK频率为50MHz和预分频器(预定标器)值为49,总共10位转换时间如下:AD转换器频率=50MHz/(49+1)=1MHz转换时间=1/(1MHz/5cycles)=1/200KHz=5us注:AD转换器设计在最大2.5MHz时钟下工作,所以转换率最高达到500KSPS。
16.4.2触摸屏接口模式(1)正常转换模式单个转换模式可能多数是使用在通用目的的ADC转换。
该模式可以通过设置ADCCON(ADC控制寄存器)来初始化并且完成对ADCDAT0的读写操作(ADC数据寄存器0)。
(2)分离XY坐标转换模式触摸屏控制器可以在两种转换模式中的一种模式下操作。
分离的XY坐标转换模式由以下方法操作。
X坐标模式写X坐标转换数据到ADCDAT0,触摸屏接口产生中断源到中断控制器。
2440操作步骤
操作步骤
1.将LCD背光板与LCD板相连,LCD板接入12V直流电源(用重量较轻的开关电源)。
注:背光板输入电源端子的1、2、5是连在一起的,接12V;3、4是连在一起的,接地(即1脚接正,3脚接地即可,1脚标识为金属面朝自己的最右边第一脚)。
2.用交叉串口将2440板子的串口(USB设备接口附近、下面的那个)与PC机的串口相连,起动超级终端,波特率为115200。
3.给2440板子电源接12V(用重量较重的铁心电源),按复位按钮。
4.当超级终端出现“Initiating image download in 14 seconds.”时,按“空格”键,输入“boot”回车。
5.当超级终端出现“Enter your selection: ”时,选择“L”键后,将启动WinCE。
如果无法启动时,请将2440板子与LCD连接的排线不要连接,用上述方法启动winCE。
如果LED出现闪烁,说明WinCE正常启动,再重新接上LCD 的排线,重复上述步骤。
6.关于USB鼠标和USB键盘:在双层的USB HOST接口最底层可以接USB 鼠标或者USB键盘或者U盘;当需要同时接以上设备时,请用USB HUB引出来再接在USB HUB上。
S3C2440_LCD控制器中文手册
的GREENVAL[31:0]和BLUELUT寄存器中的BLUEVAL[31:0]作为可编程的查找表入口。与灰度等级 显示类似,在寄存器REDLUR中的8组或者4位域,换言之,REDVAL[31:28],REDLUT[27:24], REDLUT[23:20],,REDLUT[19:16], REDLUT[15:12], REDLUT[11:8],REDLUT[7:4]和REDLUT[3:0] 被分配给每个红色等级。4位(每个域)的可能组合有16种,并且每个红色等级应该被分配16种等级种 的1种。换句话说,用户可以通过该类型的查找表选择合适的红色等级。对于绿色,寄存器GREENLUT 中的GREENVAL[31:0]在查找表中的分配形式与红色是一样的。类似地,寄存器BLUELUT中的 BLUEVAL[31:0]在查找表中也是这样分配的。对于蓝色,2位组成4种颜色等级,与8种红色,绿色等 级是不一样的。 4096 色模式操作
s3c2440如何设置fclk
间,这两个调整时间数值一般用其默认值即可。
表2-8变频锁定时间寄存器(LOCKTIME)
FCLK与Fin的倍数通过MPLLCON寄存器设置,三者之前有以下关
系:
MPLL(FCLK)=(2*m*Fin)/(p*2)
其中:m = MDIV + 8,p = PDIV + 2,s = SDIV
m=(MDIV+8)=100,p=(PDIV+2)=3,s=SDIV=1.
ChangeClockDivider(key,12);
再找出函数的原型分析下,
//*************************[MPLL]
*******************************
下面这个函数就是确定MPLLCON寄存器的值也就是确定MDIV、
当设置完MPLL之后,就会自动进入LockTime变频锁定期间,
LockTime之lValue((mpll_val》》12)&0xff,(mpll_val》》4)
&0x3f,mpll_val&3);
上面调函数实现了MDIV=92PDIV=1SDIV=1从而计算MPLL和
UPLL的值。
m=77+8=85,p=5,s=0
UPLL=(85*12)/(5*1)=97/5=
FCLK=400MHZ
又因为FCLK:HCLK:PCLK的分频比为1:4:8,从而得到HCLK的
值为100MHZ,PCLK的值为50MHZ。
PDIV、SDIV的值。
void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
S3C2440A中文手册【八】
第八章直接存储器存取概述s3c2440支持在系统总线和外围总线之间的4路DMA控制器。
每一路DMA控制器可以自由的执行数据在系统总线和(或)外围总线之间的动作。
换句话说,每一路可以在下列列4种情况下运行:1.源设备和目标设备都在系统总线上2.源设备在系统总线上,目标设备在外围总线上3.源设备在外围总线上,目标数据在系统总线上4.源设备和目标设备都在外围总线上DMA的主要优点是它可以不通过CPU直接调用数据。
DMA工执行可以软件开始,也可以从内部的外设请求或者外部的引脚请求开始。
DMA请求源每一路DMA控制器都可以从4种开始请求中选择一路,如果DCON寄存器选择H/W DAM 请求模式(注意,选择S/W时这个DMA请求源没意义)。
表8--1列出了4种请求和每一路的关系:表8--1.DMA开始请求和每一路关系这里nXDREQ0和nXDREQ1表示两个外部源(Extermal Devices),12SSDO和12SSDI分别表示IIS的传输和接收。
DMA 工作状态DMA应用3态FSN(有限状态机),它可以描述为以下3步:State--1. 作为起始状态,DMA等待DMA请求,一旦请求到来马上转到State--2,在这个状态,DMA ACK和INT REQ是0.State--2. 在这个状态,DMA ACK变为1,计数器(CURR_TC)从DCON[19:0]装载。
DMA ACK保持1,直到它被清0。
State--3. 在这个状态,控制DMA原子操作的子FSM被初始化了。
子FSM从源地址读取数据后把它写入目标地址。
在这个操作中,数据宽度和传输大小(单次或突发)应给与考虑。
在完整服务模式中,这种操作不断重复直到计数器(CURR_TC)变为0。
然而在单一模式中只进行一次,当子FSM完成每个原子操作时,主FSM对CURR_TC倒计时。
另外,当CURR_TC为0和中断设置DCON[29]为1 时,主FSM发出INT REQ信号(中断请求信号)。
S3C2440嵌入式开发板设计文档
1.1基于S3C2440控制的嵌入式开发板设计框图详解:1、支持USB接口,USB_HOST接口作为外设可接如U盘等设备。
USB_DEVICE接口与PC机相连,传输数据。
2、10个引角的JTAG接口,用于NAND FALSH 或者Nor FLASH 中没有uboot时,使用该接口下载Uboot程序,使嵌入的系统可以运行。
3、支持LCD扩展,本开发板选择40引脚的LCD显示器。
4、支持IIS音频接口,与UDA1341TS芯片相连,音频信号可以输入和输出。
5、电源:使用AS1117芯片产生3.3V电压,支持大部分芯片的工作电压,使用MAX8860产生1.2V电压供ARM内核使用。
6、支持系统复位,使用复位芯片MAX811应对系统的复位。
7、串口电路,DB-9支持RS232标准电压,使用SP3232或者MAX3232芯片进行电压转换,复合ARM芯片的LVTTL标准电压。
8、GPIO接口,当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。
该电路使用了7个按键,与ARM的GPIO引脚相连,分别被10K电阻上拉,一般情况下,GPIO处为高电平,一旦按下按键,GPIO的引脚电平变为低电平。
可以使用程序检测该口的电压,或者中断来获取该处电平的变化。
9、ARM型号S3C2440内部有5个16位定时器0,1,2,3支持PWM蜂鸣器电路。
开发板可以通过PWM推动来发出不同频率的声音的蜂鸣器。
只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音。
10、S3C2440支持IIC总线接口,IIC电路使用AT24C02A作为主设备通过串行数据线SDA 和串行时钟数据线SCL在总线主从设备上传递信息。
保证各个芯片与ARM的数据传输。
11、支持SD卡扩展。
可读可写。
12、以太网接口,通过DM9000并使用H1102进行网络电压转换来扩展出网络接口RJ45 。
s3c2440中文手册第6章-nandflash
s3c2440中⽂⼿册第6章-nandflash第六章Nand Flash控制器6.1概述⽬前,Nor Flash价格较⾼,⽽SDRAM和Nand Flash存储器相对经济,这样促使⼀些⽤户在NAND Flash上执⾏启动代码,在SDRAM上执⾏主程序。
s3c2440A的驱动代码可以在外部的NAND Flash存储器上被执⾏。
为了⽀持NAND Flash的boot loader,s3c2440A配备了⼀个内部的SRAM缓冲器名为“Steppingstone”。
启动时,NAND Flash上的前4KByte字节将被装载到Steppingstone上别且装载到Steppingstone上的启动代码会被执⾏。
⼀般情况下,启动代码会拷贝NAND Flash上的内容到SDRAM。
使⽤硬件的ECC,NAND Flash的数据被检查。
在完成拷贝的基础上,主程序将在SDRAM上被执⾏。
6.2特性(1)⾃动启动:启动代码在重启时被传输到4kbytes的Steppingstone上。
传输后代码会在Steppingstone上被执⾏(2)NAND Flash存储器接⼝:⽀持256字、512字节、1000字和2000Byte页(3)软件模式:⽤户可以直接访问NAND Flash,例如这个特性可以被⽤于对NADN Flash 存储器的读/擦除/编程。
(4)接⼝:8/16微的NADN Flash存储器接⼝总线(5)硬件ECC⽣成,检测和指⽰(软件纠错)(6)SFR接⼝:⽀持⼩端模式,对于数据和ECC数据寄存器的字节/半字/字访问,对于其他寄存器的字访问。
(7)Steppingstone接⼝:⽀持⼤⼩端,字节/半字/字访问(8)Steppingstone4kB内部SRAM缓冲器可以在NAND Flash启动后被⽤于其他⽬的。
6.2.1模块图6.2.2Boot loader功能在重启期间,NAND Flash控制器通过引脚状态得到连接NAND Flash的信息(NCON(Adv flash),GPG13(页⼤⼩),GPG14(地址周期),GPG15(总线宽度)–参考引脚配置)。
s3c2440嵌入式开发平台操作系统和驱动开发文档
s3c2440嵌入式开发平台操作系统和驱动开发文档目录一前言 (3)二s3c2440嵌入式开发平台介绍 (3)2.1硬件配置: (3)2.2 s3c2440嵌入式开发平台移植的系统软件 (4)2.3 s3c2440嵌入式开发平台特点: (4)三基于s3c2440的bootloader开发和应用 (7)3.1 Bootloader及u-boot简介 (7)3.2 u-boot系统启动流程 (7)3.3 s3c2440开发平台的u-boot移植 (8)3.4 常用uboot命令介绍 (10)四 4.2操作系统简介 (12)4.1 嵌入式系统 (12)4.2 嵌入式操作系统与Windows CE (12)4.3 从操作系统角度看Windows 的主要功能 (13)4.4 从开发角度看Windows 的主要功能 (13)4.5 Windows 操作系统模型 (14)五开发平台Platform Builder 4.2简介 (16)5.1 PB的安装步骤 (16)5.2 Plarform Builder文件夹结构 (20)六S3C2440嵌入式开发平台的WINCE开发流程 (22)6.1 安装Platform Builder 4.2 (22)6.2 安装Embeded Visual C++ (22)6.3 选择BSP (22)6.4 PB下WINCE的开发、定制 (23)七基于s3c2440的WINCE驱动开发 (33)7.1 wince驱动模型 (33)7.2 2440一个驱动程序示例:基于WinCE的I2C驱动程序设计 (42)八基于2440的嵌入式应用程序开发以及加载至内核 (45)8.1 主流嵌入式开发软件介绍 (45)8.2 基于s3c2440嵌入式开发平台的EVC开发 (46)8.3 把应用程序加入到WINCE内核 (49)8.4 一些EVC下实用的WIN32函数 (50)8.5 EVC下的调试工具 (52)九实现永久保存注册表数据 (53)十Windows CE 下应用程序自动启动 (54)10.1建立快捷方式 (54)10.2 修改shell.reg文件 (55)十一开机后直接运行您的程序而不显示Windows CE桌面 (56)附录一flash.c (57)附录二dm9000.c (69)附录三smdk2440nand.h (74)一前言本开发文档是基于s3c2440嵌入式开发平台所制定,主要从s3c2440的bootloader开发、应用以及windows 4.2在该平台的移植、基于本平台的驱动开发介绍以及基于该平台的一些开发技巧。
S3C2440按键中断LED控制(详细注解)
按键与LED灯,四个中断控制四个灯LED引脚连接按键引脚连接://===================================================================== =// 开发板:GT2440// 工程名称:KEY_EINT// 功能描述:外部中断0 2 11 19 控制四个LED小灯//===================================================================== =/******************************************************************************4 个用户按键四个输入引脚:EINT0 -----( GPF0 )----INPUT---K1EINT2 -----( GPF2 )----INPUT---K2EINT11 -----( GPG3 )----INPUT---K3EINT19 -----( GPG11 )----INPUT---K4******************************************************************************/ #include "def.h"#include "2440addr.h"#include "2440lib.h"#include "string.h"#include "uart.h"#define LED1ON 0xFDE //LED1点亮值为0x7DE(低电平点亮)#define LED2ON 0xFBE#define LED3ON 0xF7E#define LED4ON 0xEFE#define LEDOFF 0xFFF //LED熄灭值为0xFFFvoid __irq EintHandler0(void);void __irq EintHandler2(void);void __irq EintHandler8_23(void);void Main(void){memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,0x1000);SetSysFclk(FCLK_400M); //设置系统时钟400MChangeClockDivider(2, 1); //设置分频1:4:8CalcBusClk(); //计算总线频Uart_Select(0);Uart_Init(0,115200);Uart_Printf("KEY EINT TEST\n");Uart_Printf("Use Eint 0,2,11,19 falling edge\n");rGPBCON = (rGPBCON | 0xFFFFFFF) & 0xFFFd57FC; //GPB5--GPB8设置为output rGPBUP = rGPBUP & 0xFE1F; //使能GPB5 6 7 8上拉电阻rGPBDAT = 0x7FE; //GPB5 6 7 8位初始化为1/***********************************************************//GPF0 GPF2设置为EINT[0],EINT[2] 10 = EINT[2] 10 = EINT[0]//设置GPGCON的3,11为中断功能,分别对应EINT[11] EINT[19]*************************************************************/rGPFCON = (rGPFCON|0xFFFF)&0xFFFFFFEE;rGPGCON = (rGPGCON|0xFFFFFFFF)&0xFFBFFFBF;/*************************************************************** START:外部中断控制寄存器3位一个设置触发沿, 设置外部中断0 ,2下降沿触发外部中断控制寄存器3位设置一个触发沿, 设置外部中断11下降沿触发外部中断控制寄存器3位设置一个触发沿, 设置外部中断19下降沿触发01x = 下降沿触发*****************************************************************/ rEXTINT0 &= ~(7<<0 | 7<<8 );rEXTINT0 |= (2<<0 | 2<<8) ;rEXTINT1 &= ~(7<<12 );rEXTINT1 |= (2<<12) ;rEXTINT2 &= ~(7<<12 );rEXTINT2 |= (2<<12) ;/*************************************************************** END*****************************************************************//********************************************************//外部中断0~3保留为0 不用使能EINTPEND和EINTMASK rEINTPEND |= (1<<0|1<<2); //clear eint 4 rEINTMASK &= ~(1<<0|1<<2); //enable eint************************************************************//********************************************************//外部中断11,19需要对EINTPEND(外部中断挂起寄存器)清零并对EINTMASK(外部中断屏蔽寄存器)清零使能EINTPEND写1清零使能中断,EINTMASK清零使能中断************************************************************/ rEINTPEND |= (1<<11|1<<19);rEINTMASK &= ~(1<<11|1<<19);/***********************************************************清源挂起(SRCPND)寄存器和中断挂起(INTPND)寄存器,可以直接操作寄存器这两个函数在2440addr.h中定义*************************************************************/ ClearPending(BIT_EINT0);ClearPending(BIT_EINT2);ClearPending(BIT_EINT8_23);/***********************************************************pISR_EINT0,2中断的入口地址,定义在2440addr.inc中2440addr.inc文件内定义了用于汇编的s3c2440寄存器变量和地址*************************************************************/ pISR_EINT0 =(unsigned)EintHandler0;pISR_EINT2 =(unsigned)EintHandler2;pISR_EINT8_23 =(unsigned)EintHandler8_23;/*********************************************************** 使能或禁止中断,这是个宏定义,其原型为rINTMSK &= ~(bit)这里的操作就是取消了屏蔽,中断就开始了*************************************************************/ EnableIrq(BIT_EINT0);EnableIrq(BIT_EINT2);EnableIrq(BIT_EINT8_23);while(1);}//外部中断0,服务函数void __irq EintHandler0(void){if(rINTPND==BIT_EINT0){ClearPending(BIT_EINT0);Uart_Printf("KEY To LED1 ON \n");rGPBDAT = LED1ON;Delay(500);rGPBDAT = LEDOFF;}}//外部中断2,服务函数void __irq EintHandler2(void){if(rINTPND==BIT_EINT2){ClearPending(BIT_EINT2);Uart_Printf("KEY To LED2 ON \n");rGPBDAT = LED2ON;Delay(500);rGPBDAT = LEDOFF;}}//外部中断11,19服务函数void __irq EintHandler8_23(void){if(rINTPND==BIT_EINT8_23){ClearPending(BIT_EINT8_23);if(rEINTPEND&(1<<11)){Uart_Printf("KEY To LED3 ON \n");rGPBDAT = LED3ON;Delay(500);rGPBDAT = LEDOFF;rEINTPEND |= 1<< 11;//写1清零该位}if(rEINTPEND&(1<<19)){Uart_Printf("KEY To LED4 ON \n");rGPBDAT = LED4ON;Delay(500);rGPBDAT = LEDOFF;rEINTPEND |= 1<< 19;//写1清零该位}}}。
s3c2440 IIC读写EEPROM程序
//结束写
rIICCON = 0xaf; Delay(1);
//重新赋值,清应答中断位 //延迟等待结束生效
//上面写一个字节处理已经完成,但是最后一个应答后 rIICDS 无新数据,造成 //SCL 无法翻转,故下面再来个重复写设备地址操作,来等待最后一个数据发 送结束
for(;;)
{
rIICDS = slave_addr;
bit[3:0]:TxCLK = IICCLK/16
rIICSTAT = 1<<4;
//Enable Rx/Tx
rIICADD = 0x10;
//slave address
IIC 写数据格式: 1、开始写(start):rIICSTAT = 0xf0; 2、写设备地址带写命令 lave_addr:7 位+0(自动) 返回 ACK 3、写数据写入地址 IIC_addr 返回 ACK 4、写数据 IIC_data,可连续写多个数据,每个数据结束必须返回 ACK 5、结束写(stop):rIICSTAT = 0xd0;
S3C2440 程序---读写 EEPROM(不开中断)
硬件 IIC 类似软件模拟 IIC,硬件 IIC 读取 ACK 需要判断寄存器 IICCON 的 bit4 是否发生中断为 1。
初始化: rGPEUP = 0xc000; rGPECON = 0xa0000000;
//SDA SCL 关上拉 //GPE14 GPE15 设为 SDA SCL 功能
for(j=0;j<Read_Count;j++)
{
if(j==(Read_Count-1))
{ rIICCON = 0x2f;
//最后一个字节,返回 NOACK
凌阳s3c2440开发板烧写程序说明
执行 “load yaffs root x”指令,将“rootfs26_noGUI.yaffs 或 ” "rootfs26_GUI.yaffs" 入开发板: 烧 vivi>: load yaffs root x 发送文件配置: 文件名(F):
rootfs26_noGUI.yaffs
发送文件配置: 文件名(F):
超级终端工具配置: 连接端口: COM1 每秒位数: 115200 数据位: a 奇偶校验: 无 停止位: 1 数据流控制 无 注:连接端口不一定是 COM1,也可能是其他的COM口。
3.开发板文件烧写 : 单击2440开发板启动键 ,同时快速按键盘的空格键 。超级终端会进入如下界面 :
VIVI version 0.1.4 (root@SunplusAPP) (gcc version 2.95.3 20010315 (release)) #0. 1.4 2010骞?01鏈?19鏃?鏄熸湡浜 ?10:46:52 CST MMU table base address = 0x33DFC000 Succeed memory mapping. NAND device: Manufacture ID: 0xec, Chip ID: 0x76 (Samsung K9D1208V0M) Could not found stored vivi parameters. Use default vivi parameters. Press Return to start the LINUX now, any other key for vivi type "help" for help.
嵌入式开发板烧写程序说明
1.双击LSJF24X0图标,进入并口烧写对话框 :
jz2440开发板玩法
jz2440开发板玩法话说,开发板的资料⽬录乱得让⼈头⽪发⿇,最后发现 \开发板资料\百问⽹精智JZ2440开发板4.3⼨LCD版使⽤⼿册.pdf 是关键⽹页资料:驱动安装驱动⽂件⽬录路径别太长,否则windows会报错:系统找不到指定的⽂件百问⽹的新版 Jz2440 v3.0,插上电源线Windows:{禁⽤驱动签名} 排线⼝ (被识别成两个USB<=>JTAG&RS232+⼀个USB Serial Port)micro USB Serial 串⼝的 Prolific USB-to-Serial Comm Port 会被系统⾃动更新安装micro USB Devices 设备开机模式下的DNW驱动 SEC S3C2410X Test B/D找了很久,最后发现可以直接⽤开源⼯具全部⼀键安装。
这⾥附上2.5版本附上:驱动安装完成排线是三个 OPENJTAG设备(USB Serial Port + 100ASK JTAG + 100ASK Serial Port )靠近⽹线⼝的是 micro USB Serial 串⼝ Prolific USB-to-Serial Comm Port在usb串⼝旁边的是 Micro USB Devices SEC S3C2410X Test B/D,这个设备偶尔会报错, 且会受VMware的影响,重开开发板/虚拟机就可以了(最好是插线开机后再开虚拟机)可以调整COM端⼝号,双击设备,端⼝设置-⾼级,设置为COM1编译 Bootloader 和操作系统Bootloader选⽤ U-Boot,操作系统选⽤ Linux-arm交叉编译ARM版的U-Boot,及插桩打补丁因为虚拟⽹卡出了问题,⼜刚好有个分区没⽤到,所以直接放uboot等源码⽂件并映射成虚拟磁盘给VMware⽤了。
注意:如果按任意键召唤不了uboot菜单,那么建议断开usb,先插电开机再串⼝调试,按开发板的RESET键重启准备交叉编译环境推荐做完以下步骤后,试试⾃⼰搭建交叉编译环境及其鉴于国内垃圾GFW⽹络,在此提供官⽹下的⽆修改压缩包⽤资料提供的古⽼的ubuntu9.10.......,当然我在评论区放了Ubuntu18.04的使⽤⽅案把这个arm-linux-gcc包解压到根⽬录,然后编辑环境变量sudo tar -xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 -C /optsudo vi /etc/profile在末尾添加如下export PATH=$PATH:/opt/gcc-3.4.5-glibc-2.3.6/bin按ESC,输⼊:wq保存退出刷新环境变量配置source /etc/profile**注: ** 如果之前使⽤了其他版本的gcc,那么应该关闭终端窗⼝后重新打开,并source /etc/profile,否则make⾥的gcc变量依然是之前的版本如果希望⾃定义交叉编译环境,可以⽤export 设置仅在当然终端窗⼝⽣效的临时全局变量,或者在原 make 命令后接上如 CROSS_COMPILE=/opt/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- ⽤于指定编译器路径及其前缀插桩编译 Uboottar xjf u-boot-1.1.6.tar.bz2cd u-boot-1.1.6/patch -p1 < ../u-boot-1.1.6_jz2440.patch使⽤配置并⼀键编译make 100ask24x0_configmake或者指定交叉编译⼯具链前缀路径变量make ARCH=arm CROSS_COMPILE=/opt/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- 100ask24x0_configmake CROSS_COMPILE=/opt/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-插桩编译 Linux2.6tar xjf linux-2.6.22.6.tar.bz2cd linux-2.6.22.6patch -p1 < ../linux-2.6.22.6_jz2440.patchmake s3c2410_defconfig #如果不想⽤现成的config_ok,可以基于uboot提供的2410⾃⼰修改(⽅案1)cp config_ok .config #直接使⽤100ask官⽅做好的配置(⽅案2)make menuconfig #配置菜单(可选)make uImage烧写开发板⽤ oflash 烧写⼯具将U-boot.bin写⼊开发板的 Nor Flash (通过 OpenJTAG 排线接⼝)通过 USB 串⼝⽤终端命令和开发板交互(数字电路原理:信息本质都是通过电信号传输的,所以和⽹络ssh本质上也没有差别,和ssh⼀样操作命令就⾏) 记得设置波特率为115200并关闭流控(Flow Control),然后重开终端窗⼝可以通过串⼝操作Uboot,利⽤Uboot提供的 [k]Download linux kernel uImage来将嵌⼊式操作系统如Linux2.6写⼊开发板接上两根usb,⽤新建串⼝终端,>Transmit选择编译好的uImage烧写即可。
s3c2440LCD控制器设置及代码详解
s3c2440LCD控制器设置及代码详解要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD操纵器。
在通常情形下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD操纵器则是由外部的电路来实现,现在专门多的MCU内部都集成了LCD操纵器,如S3C2410/2440等。
通过LCD操纵器就能够产生LCD驱动器所需要的操纵信号来操纵STN/TFT屏了。
2. S3C2440内部LCD操纵器结构图:我们依照数据手册来描述一下那个集成在S3C2440内部的LCD操纵器:a:LCD操纵器由REGBANK、LCDCDMA、TIMEGEN、VIDPRCS寄存器组成;b:REGBANK由17个可编程的寄存器组和一块256*16的调色板内存组成,它们用来配置LCD操纵器的;c:LCDCDMA是一个专用的DMA,它能自动地把在侦内存中的视频数据传送到LCD 驱动器,通过使用那个DMA通道,视频数据在不需要CPU的干预的情形下显示在LCD屏上;d:VIDPRCS接收来自LCDCDMA的数据,将数据转换为合适的数据格式,比如说4/8位单扫,4位双扫显示模式,然后通过数据端口VD[23:0]传送视频数据到LCD 驱动器;e:TIMEGEN由可编程的逻辑组成,他生成LCD驱动器需要的操纵信号,比如VSYNC、HSYNC、VCLK和LEND等等,而这些操纵信号又与REGBANK寄存器组中的LCDCON1/2/3/4/5的配置紧密相关,通过不同的配置,TIMEGEN就能产生这些信号的不同形状,从而支持不同的LCD驱动器(即不同的STN/TFT屏)。
3. 常见TFT屏工作时序分析:LCD提供的外部接口信号:VSYNC/VFRAME/STV:垂直同步信号(TFT)/帧同步信号(STN)/SEC TFT信号; HSYNC/VLINE/CPV:水平同步信号(TFT)/行同步脉冲信号(STN)/SEC TFT信号;VCLK/LCD_HCLK:象素时钟信号(TFT/STN)/SEC TFT信号;VD[23:0]:LCD像素数据输出端口(TFT/STN/SEC TFT);VDEN/VM/TP:数据使能信号(TFT)/LCD驱动交流偏置信号(STN)/SEC TFT 信号;LEND/STH:行终止信号(TFT)/SEC TFT信号;LCD_LPCOE:SEC TFT OE信号;LCD_LPCREV:SEC TFT REV信号;LCD_LPCREVB:SEC TFT REVB信号。
s3c2440对nandflash的操作
s3c2440对nandflash的操作s3c2440对nandflash的操作nandflash在对大容量的数据存储中发挥着重要的作用。
相对于norflash,它具有一些优势,但它的一个劣势是很容易产生坏块,因此在使用nandflash时,往往要利用校验算法发现坏块并标注出来,以便以后不再使用该坏块。
nandflash 没有地址或数据总线,如果是8位nandflash,那么它只有8个IO口,这8个IO口用于传输命令、地址和数据。
nandflash 主要以page(页)为单位进行读写,以block(块)为单位进行擦除。
每一页中又分为main区和spare区,main区用于正常数据的存储,spare区用于存储一些附加信息,如块好坏的标记、块的逻辑地址、页内数据的ECC校验和等。
三星公司是最主要的nandflash供应商,因此在它所开发的各类处理器中,实现对nandflash的支持就不足为奇了。
s3c2440不仅具有nandflash的接口,而且还可以利用某些机制实现直接从nandflash启动并运行程序。
本文只介绍如何对nandflash实现读、写、擦除等基本操作,不涉及nandflash启动程序的问题。
在这里,我们使用的nandflash为K9F2G08U0A,它是8位的nandflash。
不同型号的nandflash的操作会有所不同,但硬件引脚基本相同,这给产品的开发带来了便利。
因为不同型号的PCB板是一样的,只要更新一下软件就可以使用不同容量大小的nandflash。
K9F2G08U0A的一页为(2K+64)字节(加号前面的2K表示的是main区容量,加号后面的64表示的是spare区容量),它的一块为64页,而整个设备包括了2048个块。
这样算下来一共有2112M位容量,如果只算main区容量则有256M字节(即256M×8位)。
要实现用8个IO口来要访问这么大的容量,K9F2G08U0A规定了用5个周期来实现。
S3C2440开发板上实现按键点亮LED驱动开发的详细过程01
文章记录了作者在S3C2440开发板上实现按键点亮LED驱动开发的详细过程,还记录了一些容易出现的错误,以及怎么解决这些错误。
一、驱动开发流程Linux驱动开发不同于应用程序的开发。
驱动开发是直接和硬件打交道的,通过对硬件的操作给应用程序提供一些接口函数,使得应用程序能够“间接”的控制硬件来工作。
对于按键点亮LED的驱动开发流程如下。
二、驱动开发具体步骤1、查看开发板TQ2440底板原理图,找到按键和LED模块,如下图:图-2 按键和LED电路图从上图我们可以清楚地看到K1~K4对应的管脚是ENT1~ENT4,LED1~LED4对应的管脚是nLED_1~nLED_4.2、查看TQ2440_核心板原理图,找到对应的CPU管脚,如下图:图-3 按键和LED对应CPU管脚电路图3、查看s3c2440芯片手册,查看CPU管脚的模式,如下图从上图我们可以看出按键对应的CPU管脚GPF0~GPF4都是占两位(如:GPF0[1:0])。
按键是一种中断,要想让按键工作在中断模式下,就要设置GPF0~GPF4(GPF3除外)管脚都设置在中断模式下,即为10。
对于LED对应的CPU管脚GPB5~GPB8也是占两位。
要想让LED工作,就要让LED工作在输出模式下,即对应管脚设置为01.4、编写按键点亮LED驱动程序/*调用内核头文件,和应用程序调用的头文件不一样*/#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/irq.h>#include <linux/interrupt.h>#include <asm/uaccess.h>#include <asm/arch/regs-gpio.h>#include <asm/hardware.h>#include <linux/device.h>#include <linux/poll.h>#define DEVICE_NAME "tope-buttons" //自定义驱动称为“tope-buttons”。
s3c2440芯片中文手册-19 SDIO
19.5.2 SDI 波特率预定标器寄存器
SDI Baud Rate Prescaler Register (SDIPRE)
寄存器
地址
读写
描述
SDIPRE
0x5A000004 R/W SDI波特率预定标器寄存器
复位值 0x01
命令响应超时(64clk)。通过对该位置 1,该标志 被清除。0:不侦测 1:超时
收到命令响应。通过对该位置 1,该标志被清除。 0:不侦测 1:响应结束 命令传输在过程中。 0:不侦测 1:命令在过程中 有开始两位(8 位)的响应索引 6 位
0 0 0 0 0 0x00
SDI Response Register 0(SDIRSP0)
S3C2440A 中文 Datasheet 第十九章 MMC/SD/SDIO 控制器
联系信箱: admin@ Forum: /
第十九章 MMC/SD/SDIO 控制器
19.1 特点
- 兼容 SD 存储卡规格(1.0 版本)或 MMC 规格(2.11 版本) - 兼容 SDIO 卡规格(1.0 版本) - 用于数据接收发送的 16 字(64 字节)FIFO - 40 位的命令寄存器 - 136 位的响应寄存器 - 8 位的预定标器逻辑(频率=系统时钟/(P+1)) - 通常模式或 DMA 传输模式(字节、半字及字传输) - DMA burst4 访问支持(仅字传输) - 1 位/4 位(宽总线)模式及模块/流模式开关支持
19.2 模块图
19.3 SD 操作
串行时钟线同步在五根数据线上的信息移位和采样。传输频率通过设定 SDIPRE 寄存器的 相应位的设定来控制。你可以修改频率来调节波特率数据寄存器值。
JZ2440开发板使用手册
百问网·精智JZ2440使用手册提示:除了QT外,可以不看本手册,参考《嵌入式Linux应用开发完全手册》及视频即可第1章嵌入式Linux开发环境构建 (4)1.1 安装Ubuntu 9.10 (4)1.1.1 安装VMware (4)1.1.2 安装Ubuntu 9.10 (13)1.2 安装Ubuntu下的开发工具 (20)1.3 安装Windows下的开发工具 (22)第2章精智JZ2440开发板烧写程序方法 (23)2.1 使用JTAG工具烧写开发板 (23)2.1.1 Windows下并口JTAG驱动安装 (23)2.1.2 Windows下OpenJTAG驱动安装 (29)2.1.3 Ubuntu下驱动程序的安装 (29)2.1.4 JTAG烧写软件oflash的用法 (29)2.2 通过u-boot烧写整个系统 (29)2.2.1 在Windows下使用dnw和u-boot烧写系统 (30)2.2.2 在Linux下使用dnw和u-boot烧写系统 (31)第3章板上Linux系统搭建 (33)3.1 修改、编译、使用u-boot (33)3.1.1 使用补丁修改、编译u-boot (33)3.1.2 u-boot使用方法 (33)3.2 修改、编译、使用Linux内核 (36)3.2.1 使用补丁修改、编译内核 (36)3.2.2 使用uImage (36)3.3 修改、编译QT (36)3.3.1 编译依赖的软件 (36)3.3.2 使用补丁修改、编译QT (39)3.4 构造根文件系统 (39)3.4.1 基于最小根文件系统制作QT文件系统 (39)3.4.2 制作YAFFS2、JFFS2文件系统映象文件 (42)第1章 嵌入式Linux开发环境构建1.1 安装Ubuntu 9.10注意:如果使用光盘上已经制作好的虚拟机,那么1.1或1.2的内容可以忽略。
《嵌入式Linux应用开发完全手册》里使用的主机开发环境是Ubuntu 7.10,现在最新的Ubuntu版本是9.10。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
百问网·精智JZ2440使用手册提示:除了QT外,可以不看本手册,参考《嵌入式Linux应用开发完全手册》及视频即可第1章嵌入式Linux开发环境构建 (4)1.1 安装Ubuntu 9.10 (4)1.1.1 安装VMware (4)1.1.2 安装Ubuntu 9.10 (13)1.2 安装Ubuntu下的开发工具 (20)1.3 安装Windows下的开发工具 (22)第2章精智JZ2440开发板烧写程序方法 (23)2.1 使用JTAG工具烧写开发板 (23)2.1.1 Windows下并口JTAG驱动安装 (23)2.1.2 Windows下OpenJTAG驱动安装 (29)2.1.3 Ubuntu下驱动程序的安装 (29)2.1.4 JTAG烧写软件oflash的用法 (29)2.2 通过u-boot烧写整个系统 (29)2.2.1 在Windows下使用dnw和u-boot烧写系统 (30)2.2.2 在Linux下使用dnw和u-boot烧写系统 (31)第3章板上Linux系统搭建 (33)3.1 修改、编译、使用u-boot (33)3.1.1 使用补丁修改、编译u-boot (33)3.1.2 u-boot使用方法 (33)3.2 修改、编译、使用Linux内核 (36)3.2.1 使用补丁修改、编译内核 (36)3.2.2 使用uImage (36)3.3 修改、编译QT (36)3.3.1 编译依赖的软件 (36)3.3.2 使用补丁修改、编译QT (39)3.4 构造根文件系统 (39)3.4.1 基于最小根文件系统制作QT文件系统 (39)3.4.2 制作YAFFS2、JFFS2文件系统映象文件 (42)第1章 嵌入式Linux开发环境构建1.1 安装Ubuntu 9.10注意:如果使用光盘上已经制作好的虚拟机,那么1.1或1.2的内容可以忽略。
《嵌入式Linux应用开发完全手册》里使用的主机开发环境是Ubuntu 7.10,现在最新的Ubuntu版本是9.10。
如果想在Windows下进行开发,那么要先安装一个虚拟机,比如VMware。
它将虚拟出一台主机,可以在这台虚拟主机上安装Ubuntu。
1.1.1 安装VMware从VMware的官方网站下载到VMware工具,安装后,参照以下方法创建一台虚拟机。
建议建立两个虚拟硬盘,一个用来存放Ubuntu本身,另一个用来存放我们的工作资料。
①启动VMWare,如图1.1所示,点击“New Virtual Machine”即可开始创建一个虚拟主机:图1.1 启动VMware②在后续界面中使用默认选项,直到出现如图1.3所示的界面,在里面选择“Custom”自己定制虚拟机器。
图1.2 选择定制虚拟机 ③选择虚拟机的操作系统,我们使用Ubuntu:图1.3 选择定制虚拟机①给虚拟机建一个名字:图1.4 输入虚拟主机名字、存储位置②指定虚拟机的内存容量,在图1.4所示的界面中有推荐值及取值范围:图1.5 指定内存容量③指定虚拟机的网络连接类型,一般使用桥接方式(bridge networking),如图1.8所示。
安装完华后可以再进行修改。
图1.6 指定虚拟机的网络连接类型⑦以下4个步骤是用来建立一个15G的虚拟硬盘:图1.7 指定硬盘I/O adapter图1.8 选择创建新的虚拟硬盘图1.9 指定硬盘容量图1.10 设置虚拟硬盘的名字⑧在上图中单击“完成”按钮后,就创建了一个虚拟机器,得到如图1.11所示的界面。
图1.11 建立好的虚拟机还要创建一个硬盘,点击下图的“Edit virtual machine settings”进行设置。
参照以下图1.12、1.13、1.14及步骤⑦增加一个容量为40G的虚拟硬盘,命名为work.vmdk(用来作为工作硬盘)。
想让虚拟机支持并口、USB口,也是仿照图1.12、1.13、1.14的步骤进行。
图1.12 修改虚拟机的设置图1.13增加新硬件图1.14 选择增加新硬盘1.1.2 安装Ubuntu 9.10Ubuntu 9.10的安装光盘名为ubuntu-9.10-desktop-i386.iso,可以从网上下载,也可以在开发板光盘的os目录下获得。
在虚拟机上安装Ubuntu与在真实电脑上安装Ubuntu的过程大致相同。
在虚拟机上安装时,要先设置虚拟机的光盘使用下载的iso文件,如图1.15所示。
进入虚拟机的编辑界面,选中“CD-ROM”,在右边的界面中,选择“Connnect at power on”(表示开启虚拟机时就连接光盘);然后选择“Use ISO image”,如果有实际的光盘,可以选择“Use physical drive”。
图1.15 在虚拟机上使用光盘文件启动虚拟机,或是使用Ubuntu 9.10的安装光盘启动真实主机,然后按照以下图示及说明即可安装。
图1.16 使用安装光盘启动电脑时,选择“Install Ubuntu”图1.17 选择语言,建议选择English图1.18 选择语言,建议选择English图1.19 选择时区图1.20 选择“自己进行分区”图1.21 双击/dev/sda,开始分区图1.22 双击free space,划分/boot分区,大小为100M图1.23 双击free space,划分swap分区,大小为1G图1.24 双击free space,划分/分区,大小为剩下的所有容量图1.25 双击/dev/sdb,开始分区图1.25 双击free space,划分/work分区,大小为所有容量图1.26 设置用户名、密码1.2 安装Ubuntu下的开发工具刚安装好的Ubuntu,还缺乏很多开发工具。
这些工具都可以通过网络进行安装。
如果网络不佳,也可以使用光盘中的工具包。
如果要使用光盘中的工具包,先把光盘linux目录下的apt_packages目录复制到Ubuntu 里/work目录下;然后修改/etc/apt/sources.list文件,增加下面一行(注意最后的斜杠“/”不可少):deb file:/work/ apt_packages/注意:如果提示网络错误,请修改/etc/apt/sources.list文件,只保留“deb file:/work/ apt_packages/”这一行,其他的都去掉。
不管是否使用光盘中的工具包,均是使用以下命令进行安装:①更新软件源$ sudo apt-get update②安装、配置、启动ftp服务。
执行以下命令安装,安装后即会自动运行:$ sudo apt-get install vsftpd修改vsftpd的配置文件/etc/vsftpd.conf,将下面几行前面的“#”号去掉。
#local_enable=YES#write_enable=YES上面第一行表示是否允许本地用户登录,第二行表示是否允许上传文件。
修改完华之后,执行以下命令重启ftp服务:$ sudo /etc/init.d/vsftpd restart③安装、配置、启动ssh服务。
执行以下命令安装, 安装后即会自动运行:$ sudo apt-get install openssh-server它的配置文件为/etc/ssh/sshd_config,使用默认配置即可。
④安装、配置、启动nfs服务。
执行以下命令安装, 安装后即会自动运行:$ sudo apt-get install nfs-kernel-server portmap它的配置文件为/etc/exports,在里面增加以下内容,以后将通过网络文件系统访问/work/nfs_root目录:/work/nfs_root *(rw,sync,no_root_squash)修改完华之后,执行以下命令重启nfs服务:$ sudo /etc/init.d/nfs-kernel-server restart⑤安装、配置tftp服务软件:$ sudo apt-get install openbsd-inetd tftpd tftp打开/etc/inetd.conf文件,里面有一行如下:tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp 把“nobody”改为“root”,把“/srv/tftp”改为“/work/nfs_root”,表示tftp目录。
⑥使用以下命令安装基本的开发环境:$ sudo apt-get install build-essential texinfo⑦安装工具bison、flex,它们分别是语法、词法分析器:$ sudo apt-get install bison flex libtool automake autoconf⑧安装C函数库的man手册,以后就可以通过类似“man read”的命令查看函数的用法了:$ sudo apt-get install manpages-dev⑨安装ckermint工具:$ sudo apt-get install ckermit使用kermit之前,先在/homt/book(假设用户名为book)目录下创建一个名为.kermrc(注意,是“点kermrc”)的配置文件,内容如下:set line /dev/ttyS0set speed 115200set carrier-watch offset handshake noneset flow-control nonerobustset file type binset file name litset rec pack 1000set send pack 1000set window 5然后,运行“$ sudo kermit -c”命令即可启动串口;要想关闭串口,先同时按住“Ctrl”和“\”键,然后松开再按“C”键,最后输入“exit”并回车。
在Linux中,可以使用kermit连接串口以操作目标板。
(10) 安装ddd工具:$ sudo apt-get install ddd(11) 安装QT开发环境:$ sudo apt-get install x-dev libx11-dev x11proto-xext-dev libxext-dev libqt3-mt-dev$ sudo apt-get install kdevelop konsole(12) 安装ncurses:ncurses是一个能提供功能键定义(快捷键)、屏幕绘制以及基于文本终端的图形互动功能的动态库。
如果没有它,在执行“make menuconfig”命令配置程序时会出错。