运行UART的程序
1 捎程序的时候,注意,捎入的是norflash,此时的按钮应该在norFlash.
2 当捎入成功的时候,开始运行程序时,应该把按钮按回nandflash,因为程序的启动就是在nandflash,他把norflash 的内容放到了nandflash中运行,cpu的固化程序做的。
3 因为串口时用的速度是9600,所以你的vim .kermrc也应该改为9600.
4 lsusb探测U转串的设备 lsmod 探测驱动是否存在 ch341 (kermit 是应用程序在调用驱动) ls /dev/ttyU*(kermit 里边就是打开这个设备,这里边就是驱动程序的表象了,如果这个查的太快的话,就会ttyUSB1,这时你需要改vim .kermrc 中USB0给为1)
ls -l /lib/modules/2.6.2.z./kernel/drivers/usb/serial 这个命令执行下去就能考到.ko文件驱动的所在。
5 kermit 基于终端的命令行的串口驱动程序。
6 UART U通用,A是异步的意思、
7 串口一共3个,我们设置串口控制器的寄存器(8N1)。(N代表意思是
8 ULCON 1:0 11
9 UCON0 3:2 01 中断或者轮询
1:0 01
10 UART0.UBRDIVO=0X4d; 设置波特率
12000000/9600/16 -1=77化为16进制就是4d
11 波特率的始终有3种,但是我们只选了一种。PCLK
mini2440 主频400MHZ,最高533MHZ(530),现在不论ADC还是PCLK都是12M.
现在12M
改变频率可以通过时钟控制寄存器
晶振通电产生规律的正璇波。
自然产生不会通过100M,更高需要锁线环
倍频和分频。
12 UTXHO 串口最多发8位
在波特率调调节下,移位寄存器一位一位的移出去,
12 数据放入发送保持寄存器,然后在波特率协调下,发送移位器把保存寄存器中的数据一位一位的发送出去 UART0.UTXH0=C;
等待发送寄存器中的数据发送完毕
while(!(UART0.UTRSTAT0&(0X1<<)))
13 问题当移位的时候,旧的还没有移完,新的又来了,怎么办,需要一个while查看寄存器的状态。
14 UTRSTATN 2 0表不空,1,自动设置当无数据的时候。
1 我们选择中断和DMA模式,所以此处设为1.
0
15 gcc 手册中 中招built -fno-built 这样可以避免和库中的putc产生冲突。(CFLA后边添加)
16 0xa 和10 是一样的在移位运算中。
17 Vim 操作,o另起一行, 在输入状态中ctrl shift v
局部复制, ctrl v d 剪切。
18 两种取反方式
GPH.GPHCON = ((~(0xf<<4))&GPH.GPHCON) | 0xa<<4;
while(!(UART0.UTRSTAT0&0x1))
19 s3c2440.pdf 34页
20 配置UART0为,8位数据,无校验,1位停止位,正常模式,波特率9600,中断或者轮询。
21 kermit 会自动加\r\n;
22 回车回到当前行首,换行下一行当前位置,\\kermit 按下enter时,发送\r(linux才有\r,windos没有)
23 从CPU出来两个线连到3232上升高电平,这样子才能传出去。
24 对于捎程序的讲解:
利用norflash 中的程序,把你的4K程序捎到nandflash中,其实CPU启动的时候还是从nangflash 中拿起4k的程序到SRAM.
25 关于\r\n 在linux和windows中的不同,
kermit 类似于windows中(他把发来\n解析成\r)
26 ledon 24 这样子写的话,会选择2打开。
27 char s[] = "ledon 1 3";
char *p[4];
int i;
p[0] = strtok(s, " ");
for(i=1; p[i-1]!=NULL; i++)
{
p[i] = strtok(NULL, " ");
}
for(i=0; p[i]!=NULL; i++)
{
printf("%s\n", p[i]);
}
return 0;
strtok注意p的大小,会多一个NULL,但是这个只是用来判断,p[i]=NULL;并没有真正的赋值。
strtok 会自动给分割的字符串后边加\0
28 因为strtok的,<string.h>有全局变量,所以程序中必须能用全局变量才行,这里的LDFLAGS = -static -L /home/linux/toolchain/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/sys-root/usr/lib/ -lc
加static,最后的加-lc必须注意,这是libc.a的简称。
$(LD) $^ $(LDFLAGS) -T map.lds -o $(NAME).elf
# -static使用静态库
# -L 绝对路经,静态库所在目录
# -库名简称,静态库所在目录下具体使用哪个静态库
29 加个连接脚本在START.S里边,map.lbs
30 puts 没有加\r\n但是putc加了。
31 kermit crtl \ 然后c之后进去kermit命令界面,然后q是退出kermit ,而c是在此进入原先连接界面。
32 原理图上串口123,而我们用的是012,写错了。
33 puts putc,gets,getc这几个程序离开kermit毫无意义。
34
运行UART的程序的更多相关文章
- C与ARM汇编结合实现mini2440串口uart简单程序
最近学完了ARM的一些基础知识,开始在mini2440上开发一些简单的程序,串口发送程序是一开始涉及多个寄存器的例子,稍有繁多的步骤应该是开发过程中要慢慢适应的境况 下面的程序的目的是实现mini24 ...
- 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序
物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法 例如:一个android程序包含两个Activity,分别为MainActivity和Other ...
- 在Linux中运行Nancy应用程序
最近在研究如何将.NET应用程序移植到非Windows操作系统中运行,逐渐会写一些文章出来.目前还没有太深的研究,所以这些文章大多主要是记录我的一些实验. 这篇文章记录了我如何利用NancyFx编写一 ...
- 利用 PhpStorm、Idea 等 IDE 如何 运行/调试 Go 程序 ?
以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File - ...
- 64位系统上运行32位程序能否申请到8G内存?
申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来讲,申请8G的存储空间没有任何意义,因为32位的程序最大寻址空间只有4G,32位程序在编译之后的机器代码也只有32位 ...
- robotium(及百度cafe)运行testcase之后程序挂起没有响应的原因调查及解决
一.问题背景 刚开始用的是百度cafe搭建的框架,已经用了一些版本,最后的test版本在7.4的apk上能跑,但是在最新发布的7.5的版本上跑不了,直接提示nullPointer错误,通过打日志的方式 ...
- Flash Builder 调试器无法连接到正在运行的应用程序(57%)
Flash Builder 调试器无法连接到正在运行的应用程序(57%),可能原因: 1,flashplayer不是debug版. 2,调试器(用debug版flashplayer随便 ...
- Apache运行python cgi程序
Apache运行python cgi程序 环境 win10 x64 专业版 Apache2.4 python 2.7 Apache安装和配置 Apache服务器的安装请自行搜索.在Apache2.4中 ...
随机推荐
- maven+springmvc+spring+mybatis
一.项目搭建 1)创建maven项目 选择apache的maven-archetype-webapp 填入groupID : 例如 com.mracale artifactId :例如 shoppin ...
- mysql 提示符显示用户,数据库等信息
命令: mysql -uroot -p --prompt="\\u@\\h:\\d \\r:\\m:\\s>" 效果: root@localhost:(mysql) 02:2 ...
- python2和python3中range的区别
参考自 python2和python3中的range区别 - CSDN博客 http://blog.csdn.net/xiexingshishu/article/details/48581379 py ...
- CSS 换行知多少: word-wrap && word-break && white-space && word-spacing
word-wrap : 首先提一下,word-wrap 这个 CSS 属性在CSS3中已经被更名为 overflow-wrap,这样语义化也是为了避免与 word-break 混淆: Referenc ...
- DOS命令安装配置Apache + MySQL + PHP 开发环境 (VC11)
一.下载 1.下载Apache 下载地址:https://www.apachelounge.com/download/VC11/ 2.下载MySQL 下载地址:http://dev.mysql.com ...
- Element 中表单非必填数据项 必须为数字的验证问题
Element-ui 的el-form组建中,自带基本的验证功能,比如某些项必填的验证,直接加入rules 规则中即可,如下实例: 在页面中书写如下: <el-form-item label=& ...
- 处理函数和数组声明[条款17]---《C++必知必会》
指向函数的指针声明和指向数组的指针声明容易混淆,原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号. int *f1( );//一个返回值为 int* 的函数 int ( ...
- 移动端打印输出内容以及网络请求-vconsole.js
今天,无意间从别人那里得知一个很好的js插件--vconsole.min.js,可以实现在移动端打印输出内容以及查看网络请求.下面记录使用方式. 1.下载vconsole.min.js插件 以下复制了 ...
- PKU 2352 Stars(裸一维树状数组)
题目大意:原题链接 就是求每个小星星左小角的星星的个数.坐标按照Y升序,Y相同X升序的顺序给出由于y轴已经排好序,可以按照x坐标建立一维树状数组 关键是要理解树状数组中的c[maxn]数组的构成方式, ...
- 十八般武艺之 Runloop
嗯,runloop ,看过,用过.但是有时候突然被问到,总是不能很好的描述给他人,也许是程序员本来口拙的缘故吧.另外,也是对runloop还是理解的不够透彻. 于是乎,决定重新整理一下,加深一下印象. ...