
c语言
werfzhouGo
这个作者很懒,什么都没留下…
展开
-
UART 串口中断
FT2000 飞腾CPU 这边是有两个串口,原先使用 UART1 作为 debug 串口,现在需要开启UART0 和BMC 进行通信,所以UART0 在 dts 文件中开启后,内核分配了 ttyS0 这个字符设备,故我们这个 console 口UART1 需要将原先使用的ttyS0 改为ttyS1 了。 booargs 参数需要修改下。但是这样在 cat /proc/interrupts 中没有看到 这个 irq 是8 的ttyS0 中断,咨询后发现是需要 open 这个串口后才会激活这个中...原创 2021-09-02 11:31:32 · 756 阅读 · 0 评论 -
mount -t jffs2 -o rw,sync /dev/mtdblock4 /mnt 【Flash 分区挂载时候提示出错 】
1、./dev/mtdblock4 是用于存储配置使用的分区,之前使用16M 的flash是能够正常挂载的,现在使用了32M 的flash,并且分区划分没有发生变化,但是在使用烧录器烧写flah的时候,发现从flash中读取出来的数据和我生成的img 文件内容不一致。所以初步怀疑是flash中分区的内容有脏数据导致挂载失败。百度发现如下:需要擦除spi flash的roofs分区,不要留有脏数据,以及制作jffs2时需要正确指定擦除块大小(--eraseblock=SIZE)和填充0xff(--pa原创 2020-05-14 10:11:09 · 1341 阅读 · 2 评论 -
Uboot中向内核传递参数quiet,将printk打印等级设置为loglevel
quiet Disable all log messages. 相当于loglevel=KERN_WARNING原创 2020-04-07 10:38:26 · 2270 阅读 · 0 评论 -
嵌入式设备之 MIPS Uboot移植
MIPS uboot移植 网上 有很多ARM的uboot分析文章,看了 之后发现受益良多,但是对mips的uboot移植这块欠缺,但是都大同小异,原理相差 不大。 背景思路: 由于采用RTL8382L 芯片,该芯片外围 并没有DDR,所以我们想做一款没有DDR的基于RTL8382L芯片的SWITCH。由于技术文档的缺失, 经过一段时间分析原先的UBOOT代码,该ub...原创 2019-09-28 10:48:06 · 687 阅读 · 0 评论 -
嵌入式设备+踩内存问题定位分析总结
51-SWITCH踩内存问题定位分析现象51交换机中移入ERPS功能后,通过ping设备抓包发现设备的mac地址的后两位并不是设备的原先的地址,原先的mac地址为fc:19:d0:01:02:03,但是设备arp应答的地址却是fc:19:d0:01:05:07,设备arp应答的地址时通过uip_ethaddr该全局变量获取的。故pc发送icmp的目的mac地址fc:19:d0:01:05...原创 2018-12-27 22:28:34 · 1593 阅读 · 0 评论 -
RTK8370N报文上CPU处理流程梳理
一、报文上CPU目的前提:由于原先设备使用管理VLAN1来实现设备管理,但是这样实现的缺陷是大量二层数据报文会广播到CPU上,对CPU的性能影响较大,所以我们希望使用ACL的方式进行处理上CPU报文。 设备上CPU报文的类型:首先ARP广播 报文会上CPU,我们需要进行处理 报文的目的MAC地址是设备的也需要TRAP到CPU上进行处理 针对以上 两种报文,我们可以使用AC...原创 2018-11-10 22:34:47 · 2162 阅读 · 0 评论 -
linux驱动之模块化编程
今天刚开始学习linux驱动的编写。在网上开了许多网友的博客,感觉比较好的摘抄下来,以便以后忘记可以随时查看。下面是摘抄文章的地址,非常感谢他们。http://blog.chinaunix.net/uid-26833883-id-4366882.html -------草根老师http://www.cnblogs.com/hjj801006/p/4551145.html...转载 2018-03-22 23:18:24 · 262 阅读 · 0 评论 -
C库函数之strcpy,strncpy,memcpy
1、之前在搞项目中的snmp这一块的时候,经常会用到针对字符串的处理。所以strcpy等之类的函数就会用到很多。 遇到这样的一个问题:比如模板名字为:cmts-profile-1,要将其名字改为cmts-1.显然我们使用strncpy(name1,name2,strlen(name2)),其中name1,name2都是字符串。这样的字符拷贝肯定会出现问题。结果为:cmts-1rofile-原创 2016-07-10 14:46:18 · 485 阅读 · 0 评论 -
单向链表的逆置
1、使用非递归实现typedef struct node{ int data; struct node* next;}Node,*pnode;pnode reverse_node(pnode head){ pnode p1 = head; pnode p2 = head->next; head->next = NULL; while(p2!=NU原创 2015-03-22 20:33:15 · 515 阅读 · 0 评论 -
插入排序与选择排序
插入排序:void func(int a[].int len){ int i,j,target; for(i=1;i<len;i++) { j = i; target = a[i]; while(j>0 && target < a[j-1]) { a[j] = a[j-1];原创 2015-03-22 22:14:34 · 341 阅读 · 0 评论 -
单向链表实现以及通过栈来实现数据的打印
程序仅供参考链表由一个一个的节点组成: typedef struct node { int data; struct node* next; }Node,*pnode; 栈的声明: typedef struct stack { int *array; int index; }Stack,*pstack;1:节点的建立pnode create_no原创 2015-03-22 12:36:29 · 483 阅读 · 0 评论 -
冒泡排序
void func(int a[],int len){int i=0,j=0,temp;for(i=0;i{for(j=0;j{if(a[j]>a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;//升序排序}}}}int main(){int a[5] = {6,2,0,9,14}转载 2015-03-21 16:45:51 · 330 阅读 · 0 评论