用单片机的模式调试linux
来源:互联网 发布:ubuntu安装wine1.7 编辑:程序博客网 时间:2024/06/05 06:59
s3c_pm_dbg("12345\n");
uart_rev_a_char();
void s3c_pm_dbg(const char *fmt, ...)
{
va_list va;
char buff[256];
va_start(va, fmt);
vsprintf(buff, fmt, va);
va_end(va);
printascii(buff);
}
ENTRY(printascii)
addruart r3
b 2f
1: waituart r2, r3
senduart r1, r3
busyuart r2, r3
teq r1, #'\n'
moveq r1, #'\r'
beq 1b
2: teq r0, #0
ldrneb r1, [r0], #1
teqne r1, #0
bne 1b
mov pc, lr
ENDPROC(printascii)
ENTRY(printch)
addruart r3
mov r1, r0
mov r0, #0
b 1b
ENDPROC(printch)
ENTRY(uart_rev_a_char)
addruart r3
waituart_rev_over r2, r3
mov pc, lr
ENDPROC(uart_rev_a_char)
.macro waituart_rev_over,rd,rx
ldr \rd, [ \rx, # S3C2410_UFCON ]
tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?
beq 1001f @
@ FIFO enabled...
1003:
@fifo_level \rd, \rx
ldr \rd, [ \rx, # S3C2410_UFSTAT ]
and \rd, \rd, #S3C2440_UFSTAT_RXMASK
teq \rd, #0
beq 1003b
@上行汇编-->如果相等,说明结果为0,即cpu状态寄存器的z标志置为1
@也即fifo的接收字节数为0,即fifo还没有接收到任何数据,因此需要死等
@收到数据后即bne,说明结果不为0,即cpu状态寄存器的z标志置为0
b 1002f
1001:
@ idle waiting for non fifo
ldr \rd, [ \rx, # S3C2410_UTRSTAT ]
tst \rd, #S3C2410_UTRSTAT_RXDR
beq 1001b
1002: @ exit busyuart
.endm
以上的实质是用c调用汇编函数,
uart_rev_a_char();可停止内核的执行流程,等待从串口输入一个字符
void s3c_pm_dbg(const char *fmt, ...)打印,与printk()函数效果相同,但不是先将打印信息存入打印buff,而是直接
打印,直接见效果!好处多多。
- 用单片机的模式调试linux
- 单片机的IO模式
- 单片机的IO模式
- 单片机的调试的快捷方式
- 51单片机的SoftICE调试
- 使用keil的调试模式查看代码运行时间(以51单片机代码为例)
- 单片机调试
- PIC单片机的时钟模式
- 单片机引脚模式的配置
- 学习51单片机的基本调试经验
- 一次单片机最小系统的调试
- 一种新的单片机调试方法
- STM32F103单片机IIC从机模式调试记录
- linux shell 启用调试模式的三种方式
- 如何在 Linux 中启用 Shell 脚本的调试模式
- 如何在 Linux 中启用 Shell 脚本的调试模式
- 如何在 Linux 中启用 Shell 脚本的调试模式
- Linux 中启用 Shell 脚本的调试模式
- camera架构service分析
- 数组的排序(用指针作形参,冒泡法)(第十七周上机任务)
- operator的另一种用法:操作符隐式转换
- JAVA IO 输入流 输出流笔记(一)
- android 中如何分析内存泄漏
- 用单片机的模式调试linux
- My97DatePicker使用说明文档
- hdu_1223 Order Count
- 自定义struts过滤器与拦截器实现
- javascript 查看本地图片文件
- 120941138:java list sort()排序各种方式,实现接口
- JS: addEventListener 和 attachEvent 绑定的函数中this的区别
- 正则表达式(.*?)的一个问题
- 铺地板