随笔分类 - 嵌入式的记忆
摘要:系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。 为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在Linux中,为了更好地保护内
阅读全文
摘要:istream& istream::getline(char*, streamsize,char= '\n'); 函数getline与get的区别在于,函数get当遇到分隔符后,停止获取,并将分隔符留在输入流 中,函数getline当遇到分隔符后,停止获取,但会将分隔符从输入流中取出。
阅读全文
摘要:在main函数中我们通常使用return (0);这样的方式返回一个值。 但这是限定在非void情况下的也就是void main()这样的形式。 exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳会操作系统。 但在假如把exit用在main内的时候无论main是否定义成void返回
阅读全文
摘要:相关函数:stat, lstat, chmod, chown, readlink, utime 头文件:#include <sys/stat.h> #include <unistd.h> 定义函数:int fstat(int fildes, struct stat *buf); 函数说明:fstat
阅读全文
摘要:%u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法
阅读全文
摘要:1 捎程序的时候,注意,捎入的是norflash,此时的按钮应该在norFlash.2 当捎入成功的时候,开始运行程序时,应该把按钮按回nandflash,因为程序的启动就是在nandflash,他把norflash 的内容放到了nandflash中运行,cpu的固化程序做的。3 因为串口时用的速度
阅读全文
摘要:1 注意通用IO端口, GPBCON 只能控制一个GPBDAT位(对应的位),而GPBUP可以使能GPBCON.
阅读全文
摘要:1 给寄存器赋1,的时候需要|,赋0的时候就需要取反后与。(最后程序里体现的就是1);如果赋01(多位数)时候,则需要取反后与。2 led 低电平0,亮,高电平1,而喇叭,低电平的时候管,高电平的时候亮。3 void beeper_init(void){ GPB.GPBCON = ((~(0x3<<
阅读全文
摘要:看门狗不关闭。看门狗可以防止程序跑飞,如果设置了要定时喂狗,不然系统会复位。你写程序时不设置看门狗功能不会有什么影响的。对于写一些小一点程序你觉得自己的程序没有什么问题可以不管它,对于大一点的项目最好设置一下,如果程序跑飞了可以复位重新再来,这要比让程序错误执行下去要好的多吧。
阅读全文
摘要:网络里涉及过,c语言里涉及过。还有就是汇编这里 小端 机器里这样子存,0006 ea00,但是读出来后就是ea00 0006.
阅读全文
摘要:连接脚本,map.ldsSECTIONS{ /* 机器代码的地址 */ . = 0x0; /* 4个字节对齐 */ . = ALIGN(4); /* 代码段 */ .text : { start.o(.text) *(.text)} . = ALIGN(4); /* 常量数据段 */ .rodata
阅读全文
摘要:1 ldr伪指令有两种用途。 (1)当需要读取到寄存器中的数据超过了MOV,及MVN指令可以操作的范围时,可以使用LDR伪指令将该数据读取到寄存器中。 (2)还未用到。2 ldr r0,=0x5300000 (把0x5300000下载到r0中) mov r1,#0 str r1,[r0] (把r1的
阅读全文
摘要:在ADCCON中,最后0位和1位互斥。如果1位选1的话,0位的值无效。如果1位选0的话,0位的值才有效。当1位选1的话:这是应用层的程序 #if ADSTART==0void niuniu(void){ uart_init(); adc_init(); beeper_init(); adc_read
阅读全文
摘要:1 中断图里边,芯片,最右侧是CPU,左边都是寄存器。2 PND寄存器不需要设置,需要判断。3 问题串口0中断有2级中断么? 串口中断28号,但是对应了3个中断源,2,串口错误 1,串口发送, 0 ,串口接收。4 8N1中的N表示无校验。5 当你向串口BUF中写入一个时,不取走的情况下,不能再写。6
阅读全文
摘要:ADC的寄存器读取,int adc_read(void){ int result; #if ADSTART==0 result = ADC.ADCDAT0&0x3ff; while(!(ADC.ADCCON&(0x1<<15))) { }#elif ADSTART==1 while(!(ADC.AD
阅读全文
摘要:Linux 基础 1.Linux的诞生 1.unix两大分支:BSD和system V 2.GUN计划:允许软件自由复制更改移植 3.Linux发行版本:red_hat(red_hat) Debian(ubuntu) 系列 4.Linux 用户界面 1.图形界面 2.用户界面 5.Linux操作系统
阅读全文
摘要:1 原来UART实验的,速度被设置成9600,因为UART,在计算速度的时候带的是96002 后来一次学习的时候,ADC用到串口打数据,那么他的串口速度任然是9600,原来用UBOOT中的速 度则是115200.3 如果现在的ADC程序用串口初始化的话,本来的串口的速度设置成了9600,96如果在v
阅读全文
摘要:运行tags在你的.vimrc 中加一个路径,set tags=/home/lh/1407k/arm/tags 注意此文件下的东西要注销必须用“执行一个ctags -R *;ctrl + ]过去,ctrl o回来。
阅读全文
摘要:strtok函数多方一个NULL,定义的时候char *p[9];用的时候p[0[]~p[7] 还有NULL,
阅读全文
摘要:1 这个程序用十进制不行。2 注意是寄存器的起始地址是小端。寄存器的地址不连续的问题。3 Int类型分为10进制,16进制,2进制也是。 char类型。 注意此处的寄存器中存的是BCD码,int型中的16进制。4 void htoa(unsigned int data) putc(data/16+4
阅读全文