taoqian's profiledifferent life, differen...PhotosBlogListsMore Tools Help

Blog


    April 25

    好地方

    4.15-16去了趟杭州。
    4.22-23去了趟绍兴的五泄.
    有山,有江,有湖,快哉快哉,想一想,在上海真辛苦.匆匆茫茫,连个安静的地方都找不到.
    April 10

    一个有趣的现象.

    两个task争抢UART
    TaskA
    {
    startTaskB();
    waitfor(100);
    printf很多东西
    }
     
    TaskB
    {
    printf很多东西
    }
     
    TaskB中的等待100是希望等待TaskB执行完,当我将Baud set成115200的时候,TaskB能执行完。
    可是如果我将Baud set成9600的时候,TaskB速度慢了,结果TaskA等待了100,TaskB还是没执行完。
     结果两个Task争UART,屏幕乱了。
     
    其实这是因为串口驱动是阻赛型的:当它发现fifo满的时候,就pending了。。。。。
     
    April 09

    数据通信知识还是不够系统

    跟几个人谈谈了技术。
    感觉自己才嵌入式开发上还可以,如RTOS上的内存管理/中断异常,CPU,ICE还有vxworks的一些调试技术我自己还比较满意。
    但是在数据通信的一些概念上还存在一些需要补充的地方。
    以前侧重于代码,fix bug,这跟我目前所在的环境有关系,但是如果个人努力还是可以克服的,其实应该首先看standard.
    如IEEE的802.1d,802.1q,802.1ad,还应看看一些QoS,L2VPN上的一些RFC.
     
    记得以前台湾来的一个经理,对STP,vlan等二层的东西非常熟悉,对协议理解很透,对code和Architecture的理解好像是公司最牛的,他说他协议读了很多遍,我还是很佩服他的。
     
    如果每天能坚持一个小时看,半年就可以看完重要的二层协议了。这样的话,对数据通信这个领域就会有一些基本认识。另外,公司内部有很多feature的Design spec,和客户要求的feature的list.这些都是快速学习的好资料,要加以善用。
     
    从下个月起开始执行吧。
     
     

    判断BIG endian or little endian最简单的方法

    void bigorlittle()
    {
        uint32 a=1;
        if(uint8(a)==1)
            printf("little");
        else
            printf("big");
        return;
    }
     
    以上是fix一个bug之后的心得