自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 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 637

原创 飞腾FT2000/A + SWITH pcie 扫描问题记录

前景: cpu 和 SWITCH 是通过PCIE 接口进行连接,通过PCIE 接口进行对SWITCH 配置。1、由于Switch 上电后需要给上电时序,在Uboot阶段给了正确的上电时序后,飞腾cpu无法正常扫到SWITCH 的PCIE.2、与飞腾沟通后发现其CPU 上电后是有PCIE 的扫描窗口的,只能在那段时间内需要将PCIE 设备给准备好 才能扫到PCIE 设备。3、根据飞腾的建议,希望可以在Uboot 阶段将操作Switch 的GPIO 提前,并且是在扫之前,这个修改也...

2021-07-12 17:47:43 2325 1

原创 Openwrt 7628an 3 byte地址模式,4byte地址模式 以及 W25Q256 Flash的3地址模式和4地址模式

Openwrt 我们原先使用的是16M 的flash,但是需要扩容量,使用32M 的flash,16M 和32 M 的地址模式是不一样的,16M flash 只需要3Byte 地址寻址,但是32M flash 需要4地址寻址。 现在7628 上默认是3byte 地址寻址方式,并且32M 的flash 不清楚使用的是什么地址模式,但是现在能够正常使用。但是将硬件拉成4byte 模式的时候发现无法正常启动了。硬件上将该管脚设置为了 0x011,既4-byte 模式,但是为啥拉了之后无法正常启动..

2020-08-23 09:46:14 5558 3

原创 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 1150 2

原创 Uboot中向内核传递参数quiet,将printk打印等级设置为loglevel

quiet Disable all log messages. 相当于loglevel=KERN_WARNING

2020-04-07 10:38:26 2094

原创 嵌入式设备之 MIPS Uboot移植

MIPS uboot移植 网上 有很多ARM的uboot分析文章,看了 之后发现受益良多,但是对mips的uboot移植这块欠缺,但是都大同小异,原理相差 不大。 背景思路: 由于采用RTL8382L 芯片,该芯片外围 并没有DDR,所以我们想做一款没有DDR的基于RTL8382L芯片的SWITCH。由于技术文档的缺失, 经过一段时间分析原先的UBOOT代码,该ub...

2019-09-28 10:48:06 600

原创 嵌入式设备+踩内存问题定位分析总结

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 1398

原创 最近工作小结

1、由于上次加了报文上CPU的功能后,本以为该功能是能够正常工作,报文上CPU是没 问题的,但是经过测试发现,唉,怎么什么报文都能够上CPU了。根据这个 现象,就想到了会不会是下发的ACL有异常啊,然后去看SDK代码,然后一直以为这个CPU端口是已经从管理VLAN中剔除的。最后也是在同事的建议下,去确认下到底CPU有没有从管理VLAN中剔除掉。 一下确认后惊呆了,确实没有被 剔除掉,然后自...

2018-12-12 22:45:56 173

原创 自控力

题目标题:自控力这本书前前后后 一共加起来总共 花了大概一个多月才读完,个人感觉收获还是蛮大,在提升自我管理,自我 控制,意志力提高上有很好的帮助,所在这这边写写读后感。 与之后回顾,与人共勉。1、冥想实验      本章主要讲了 我 想做,我不要、我想要的三种力量,他们协同努力, 让我们变成更好的 自己。当你精疲力尽或烦躁时,可以做5分钟的冥想实验,在脑海中 默念“呼、吸”,把注意力...

2018-11-24 21:40:51 740

原创 RTK8370N报文上CPU处理流程梳理

一、报文上CPU目的前提:由于原先设备使用管理VLAN1来实现设备管理,但是这样实现的缺陷是大量二层数据报文会广播到CPU上,对CPU的性能影响较大,所以我们希望使用ACL的方式进行处理上CPU报文。      设备上CPU报文的类型:首先ARP广播 报文会上CPU,我们需要进行处理 报文的目的MAC地址是设备的也需要TRAP到CPU上进行处理 针对以上 两种报文,我们可以使用AC...

2018-11-10 22:34:47 1914

转载 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 224

原创 Adobe Acrobat 7.0

今天打开adobe 发现左侧的书签不见了。需要打开后重新打开书签视图--导览标签---重置标签

2018-03-21 16:49:18 961

原创 ipython安装

前提是你已经安装好了python

2017-11-19 17:54:45 555

原创 打开虚拟机提示内部错误,并且进入虚拟机提示无法获取文件句柄,导致开启虚拟机失败

1、网上搜索了一下打开虚拟机的时候提示内部错误的原因,这个多半是由于权限问题导致的,打开的时候使用右键:选择以管理员身份运行原以为这样就可以运行很久没有用的虚拟机了,但是进入ubuntu后发现提示无法找到文件句柄,根据网上的提示这个原因是由于虚拟机安装目录下的以.vmx结尾的文件中vmci0.present = "TRUE" 需要将其改为FALSE 即:vmci0.present

2016-07-25 22:22:39 1348

原创 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 429

原创 学习与磨练

本人已经一年多没有更新这个博客了,其中不乏懒惰,缺少动力。或又说没有什么想法来写些什么。。但是经过这几天的学习交流,看了《谁的青春不迷茫》 ,这使得我需要重新振作我自己。不能只靠上班这点时间来过的苟且。。我们需要生活,需要有点追求,有点理想。现在重新拾起这个博客,一是为了和大家一起交流交流,在技术方面本人比较渣渣。。虽然自己从事的是嵌入式软件行业。懂得比较少。 所以这个需要在后期工作中不断的学

2016-04-24 22:04:14 492

原创 插入排序与选择排序

插入排序: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 295

原创 单向链表的逆置

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 413

原创 单向链表实现以及通过栈来实现数据的打印

程序仅供参考链表由一个一个的节点组成: 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 435

转载 冒泡排序

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 290

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除