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的程序的更多相关文章

  1. C与ARM汇编结合实现mini2440串口uart简单程序

    最近学完了ARM的一些基础知识,开始在mini2440上开发一些简单的程序,串口发送程序是一开始涉及多个寄存器的例子,稍有繁多的步骤应该是开发过程中要慢慢适应的境况 下面的程序的目的是实现mini24 ...

  2. 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序

    物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...

  3. 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法

    正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法 例如:一个android程序包含两个Activity,分别为MainActivity和Other ...

  4. 在Linux中运行Nancy应用程序

    最近在研究如何将.NET应用程序移植到非Windows操作系统中运行,逐渐会写一些文章出来.目前还没有太深的研究,所以这些文章大多主要是记录我的一些实验. 这篇文章记录了我如何利用NancyFx编写一 ...

  5. 利用 PhpStorm、Idea 等 IDE 如何 运行/调试 Go 程序 ?

    以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File - ...

  6. 64位系统上运行32位程序能否申请到8G内存?

    申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来讲,申请8G的存储空间没有任何意义,因为32位的程序最大寻址空间只有4G,32位程序在编译之后的机器代码也只有32位 ...

  7. robotium(及百度cafe)运行testcase之后程序挂起没有响应的原因调查及解决

    一.问题背景 刚开始用的是百度cafe搭建的框架,已经用了一些版本,最后的test版本在7.4的apk上能跑,但是在最新发布的7.5的版本上跑不了,直接提示nullPointer错误,通过打日志的方式 ...

  8. Flash Builder 调试器无法连接到正在运行的应用程序(57%)

    Flash Builder 调试器无法连接到正在运行的应用程序(57%),可能原因:     1,flashplayer不是debug版.     2,调试器(用debug版flashplayer随便 ...

  9. Apache运行python cgi程序

    Apache运行python cgi程序 环境 win10 x64 专业版 Apache2.4 python 2.7 Apache安装和配置 Apache服务器的安装请自行搜索.在Apache2.4中 ...

随机推荐

  1. 17.如何网页发起QQ聊天

    1.被发起的QQ需要再QQ推广开启QQ在线状态http://shang.qq.com/v3/widget.html 2.html代码 <html> <head></hea ...

  2. C语言可以分配的最大内存

    前言 最近用C刷PAT算法题目, 发现C语言有太多需要关注大小范围的东西必须 知道, 虽说挺麻烦, 但也挺有意思. int最大值是多少 首先就是int类型的取值范围, 这个太常用. C语言标准规定最低 ...

  3. Oracle获取当前session ID的方法

    1.使用v$mystat视图获取当前session的ID select sid from v$mystat; 2.使用userenv内部函数获取当前session的ID select userenv( ...

  4. Django restframwork实现自定义数据格式的分页与搜索

    最近因为在做分页时遇到的问题很多,页浪费了好多时间,所以记录一下.以后如遇到可用省去不必要的麻烦 restframwork中的官方文档对分页和搜索页进行了详细的介绍,但是我公司需要的return的js ...

  5. cmd 导出导入数据库

    cmd导出 1.

  6. Optimal Marks SPOJ - OPTM (按位枚举-最小割)

    题意:给一张无向图,每个点有其点权,边(i,j)的cost是\(val_i\ XOR \ val_j\).现在只给出K个点的权值,求如何安排其余的点,使总花费最小. 分析:题目保证权值不超过32位整型 ...

  7. akka消息传递

    消息传递 消息本身要求是什么?是否必须可以序列化?消息传递根据传递的要求严格程序依次分为三类,1.至多一次到达 至消息最多一次传递到目的端,消息可能会丢失,但不会重复2.至少一次到达 潜在可能存在多次 ...

  8. spark[源码]-DAG调度器源码分析[二]

    前言 根据图片上的结构划分我们不难发现当rdd触发action操作之后,会调用SparkContext的runJob方法,最后调用的DAGScheduler.handleJobSubmitted方法完 ...

  9. Camera帧率和AE的关系

    1.camera首先是通过曝光的pixel加上dummy pixel以及曝光的line加上dummy line来决定一帧的曝光时间,这一帧曝光时间的倒数就是帧率,这个没有错吧,但是看代码时候看到pre ...

  10. Python面试题目之(针对dict或者set数据类型)边遍历 边修改 报错dictionary changed size during iteration

    # result 是一个字典, 把里面属性值是None的属性删除 for key in result: if not result[key]: del result[key] continue 但是报 ...