串口通讯程序 打开时有问题。
查看/etc/mdev.conf 文件,及相关资料《Mini2440 Linux移植开发实战指南.pdf》的文件系统启动过程分析,发现原来串口文件名发生了变化。
《Mini2440 Linux移植开发实战指南.pdf》下载在:http://www.linuxidc.com/Linux/2011-06/37903.htm
参考资料:
“。。。。可 以 看 到 , 原 本 串 口 驱 动 注 册 的 设 备 名 是 s3c2410_serial0, s3c2410_serial1 和
s3c2410_serial2,而 mdev 则会在/dev 目录下对应生成 ttySAC0, ttySAC1 和 ttySAC2 以符合
应用程序对于串口设备名称的习惯。同样的,/dev/sdcard 和/dev/udisk 永远分别指向 SD 卡和
U 盘的第一个分区。。。“
有误导的文章:
。。。
这个程序很简单,就是打开串口,直接把数据传出去。我这是直接通过String str='123#'写的,你也可以先建个控件EditText,把数据写在里面再发送出去,我目前就是这样写数据的。
package com.lab2;
import Android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import com.friendlyarm.AndroidSDK.HardwareControler;
public class Lab2 extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private Button myButton;
HardwareControler seri = new HardwareControler();
String str='123#';
byte[] str1=str.getBytes();
int fnum;
@SuppressWarnings('static-access')
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton=(Button)findViewById(R.id.send);
myButton.setOnClickListener(this);
fnum=seri.openSerialPort('/dev/s3c2410_serial2', 19200, 8, 1);}
public void onClick(View v) {
switch (v.getId()) {
case R.id.send:
seri.write(fnum, str1);}
}
}
Timer timer = new Timer();
final Handler handler = new Handler(){
public void handleMessage(Message msg){
EditText readdisplay = (EditText) findViewById(R.id.readdisplay);
switch(msg.what){
case 1:{
readdisplay.setText(readserial.toString());
}
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask(){
public void run(){
Message message = new Message();
message.what = 1;
readserial = serial.ComRd(0, 50, 600);
handler.sendMessage(message);
}
};
关键字:S3C2440 启动过程
引用地址:
关于S3C2440的串口号
推荐阅读最新更新时间:2024-11-07 19:50
S3C2440之看门狗
看门狗定时器的主要作用当程序因为干扰而跑飞后,能够使系统复位。从而防止系统跑飞,提高系统稳定性。 先来说说看门狗的工作原理: 设本系统程序完整运行一周期的时间是Tp,看门狗的定时周期为Ti,Ti Tp,在程序正常运行时,定时器就不会溢出,若由于干扰等原因使系统不能在Tp时刻修改定时器的记数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控的作用。 看门狗设计步骤: 1,设置看门狗中断操作,包括全局中断操作和看门狗中断的使能,看门狗中断向量的定义。 #define rINTMSK (*(volatile unsigned *)0x4a000008) //Interrupt mask contro
[单片机]
s3c2440时钟+nandflash拷贝至SDRAM+开启mmu
涉及6个文件 head.S,init.c,main.c,makefile,nand.c,out.lds head.S .text .global _start _start: b Reset HandleUndef: b HandleUndef HandleSWI: b HandleSWI HandlePrefetchAbort: b HandlePrefetchAbort HandleDataAbort: b HandleDataAbort HandleNotUsed: b HandleNotUsed b HandleIRQ HandleFIQ: b HandleFIQ R
[单片机]
Jlink + ADS调试 S3C2440
我只会在SDRAM中调试,说一下: ADS 项目属性设置: -ro-base = 0x30000000 entry 0x30000000 Init Section: 2440init.o Init AXD下需要加载一个SDRAM初始化文件。 AXD下-- Option- Config Interface- session file- run configuration script. 选择一个初始化文件,内容如下: Setmem 0x53000000 0x00000000 32 Setmem 0x4A000008 0xFFFFFFFF 32 Setmem 0x4A00001C 0x000007FF 32 Setmem 0x53
[单片机]
ARM9_S3C2440学习(五)norflash启动,nandflash启动,SDRAM总结
S3C2440的启动时读取的第一条指令是在0x00上,分为成nand flash和nor flash上启动。 nand flash:适合大容量数据存储,类似硬盘; nor flash:适合小容量的程序或数据存储,类似小硬盘; sdram:主要用于程序执行时的程序存储、执行或计算,类似内存。 Nor flash的有自己的地址线和数据线,可以采用类似于memory的随机访问方式,在nor flash上可以直接运行程序,所以nor flash可以直接用来做boot,采用nor flash启动的时候会把地址映射到0x00上。 Nand flash是IO设备,数据、地址、控制线都是共用的,需要软件区控制读取时序,所以不能像nor
[单片机]
S3C2440裸机------内存控制器
1.内存接口概念 GPIO和协议类接口:我们在配置GPIO或者协议类接口(uart I2C总线)时,对于CPU 来说,它不关心这些接口,它只是去操作这些寄存器,CPU通过配置相应的寄存器,然后由GPIO控制器或uart控制器发出特定的波形,CPU是根据地址去选择不同的寄存器,cpu配置寄存器时是通过内存控制器去配置的,cpu把地址发送给内存控制器, 然后由内存控制器根据地址去选择不同的模块,然后把数据发送给模块或者从模块中读取数据。CPU发出的数据并不会直接输出到外部接口,cpu只是把数据发送给了相应的寄存器。 内存接口:对于内存设备来说,CPU发出的地址可以直接传给内存类设备,内存类设备包括norfalsh, 网卡,SDRA
[单片机]
S3C2440的LCD虚拟显示测试
一、概述 S3C2440的LCD控制器支持虚拟显示,说的容易理解一点就是,可以显示比实际显示器大的图像。可以这样想象,有一个大的图片,但是显示器(显示串口)比较小,但是我们可以相对于大图片(即大图片不动)移动显示器的位置,从而实现观察大图片的其他部分的内容。芯片手册上对这部分内容用一个图片来生动展示如下。 这里说明四点: 1.虚拟内存(大照片的存储空间)比视口的缓冲空间大 2. 虚拟内存的基地址是固定的 3.大照片的开始位置(虚拟内存的基地址(LCDBANK))是以4M对齐的,eg:0x30400000 4.可以更改视口的基地址(LCDBASEU)和结束地址(LCDBASEL)来移动视口 二、LCD控制
[单片机]
S3C2440 开发板实战(5):定时器中断
一、定时器大体结构 查看芯片手册,可以找到以下定时器结构框图 从做到右看,对该图进行分析:(不考虑) Prescaler:定时器0和1共享一个8位分频器,而定时器2、3、4共享另一个8位分频器。分频器将输入的PCLK分频为:PCLK/(prescaler+1)。 Clock divider & MUX:每个定时器有一个时钟分频器,它产生5个不同的分频信号(1/2,1/4,1/8,1/16,和TCLK)。每个定时器块从时钟分频器接收自己的时钟信号,时钟分频器从相应的8位分频器接收时钟。8位分频器是可编程的,根据加载值对PCLK进行划分,存储在TCFG0和TCFG1寄存器中。此时定时器的时钟频率为:Timer input
[单片机]
Linux移植之内核启动过程引导阶段分析
在Linux移植之make uImage编译过程分析中已经提到了uImage是一个压缩的包并且内含压缩程序,可以进行自解压。自解压完成之后内核代码从物理地址为0x30008000处开始运行。下面分析在进入C之前内核做的一些工作,以下是内核启动过程中打印出来的信息,其中Uncompressing Linux就是在自解压代码。make uImage编译的最后也给出了链接脚本arch/arm/kernel/vmlinux.lds,以及链接的顺序arch/arm/kernel/head.o 是第一个。 分析arch/arm/kernel/vmlinux.lds可以知道程序入口的地址是stext,并且是.text.head段 277
[单片机]