精华内容
下载资源
问答
  • 嵌入式实训总结.doc

    2021-10-07 08:33:03
    嵌入式实训总结.doc
  • 嵌入式实训总结

    千次阅读 2017-06-15 20:54:46
    首先,简单地说一下本次实训的主要项目内容。项目使用PC机作为上位机,实现平台为VM下linux中ubuntu版本,下位机是使用华清远见研发中心 FS4412开发板。主体功能是:一、实现开发板外设摄像头拍照功能,二、开发板...

    首先,简单地说一下本次实训的主要项目内容。项目使用PC机作为上位机,实现平台为VM下linux中ubuntu版本,下位机是使用华清远见研发中心 FS4412开发板。主体功能是:一、实现开发板外设摄像头拍照功能,二、开发板外接ZigBee协调器读取m0终端的环境数据,三,通过串口控制mo终端的外设。其中将得到的视频信息及环境数据显示在客户端,客户端使用qt开发,服务端运行在开发板上,二者通过TCP协议进行网络通信。可实现多线程通信,但服务器尚且不能并行访问。主体功能大致实现,但代码中存在一些尚未解决的问题可能影响实际效果,仅供参考。
    客户端项目代码如下:
    这里写图片描述

    QT客户端部分代码

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <QWidget>
    #include <QWidget>
    #include <QLineEdit>
    #include <QPushButton>
    #include <QTcpSocket>
    #include <QLabel>
    #include <QGridLayout>
    #include <QThread>
    #include <qdebug.h>
    class Widget : public QWidget
    {
        Q_OBJECT
    
    public:
        Widget(QWidget *parent = 0);
        ~Widget();
    public slots:
    
        void send_pic_one(void)
        {
            sock1->connectToHost(le_hostip->text().toStdString().c_str(),le_port->text().toInt());
            connect(sock1, SIGNAL(connected()), this, SLOT(send_pic_two()));
            qDebug()<<" connect success! ";
        }
        void send_pic_two(void)
        {
            char buf[20]="start";
            sock1->write(buf,sizeof buf);
            qDebug()<<" request success! ";
        }
        void send_tempdata_one(void)
        {
            sock2->connectToHost(le_hostip->text().toStdString().c_str(),le_port->text().toInt());
            connect(sock2, SIGNAL(connected()), this, SLOT(send_tempdata_two()));
            qDebug()<<" connect success! ";
        }
        void send_tempdata_two(void)
        {
            char buf[20]="request";
            //sock->write(buf,sizeof buf);
            sock2->write(buf,sizeof(buf));
        }
        void led_connect(void)
        {
            sock_led->connectToHost(le_hostip->text().toStdString().c_str(),9990);
            connect(sock_led, SIGNAL(connected()), this, SLOT(send_leddata()));
        }
        void send_leddata(void)
        {
            static int led_flag=0;
            if(0==led_flag)
            {
                char CMD_LED_ON[36]={0xdd,4,0x24,0x00,0x00};
                sock_led->write(CMD_LED_ON,sizeof CMD_LED_ON);
                sock_led->disconnectFromHost();
                led_flag++;
            }
            else
            {
                char CMD_LED_OFF[36]={0xdd,4,0x24,0x00,0x01};
                sock_led->write(CMD_LED_OFF,sizeof CMD_LED_OFF);
                sock_led->disconnectFromHost();
                led_flag=0;
            }
        }
        void bee_connect(void)
        {
            sock_bee->connectToHost(le_hostip->text().toStdString().c_str(),9991);
            connect(sock_bee, SIGNAL(connected()), this, SLOT(send_beedata()));
    
        }
        void send_beedata(void)
        {
            qDebug()<<" good ";
            char CMD_BEE_ON[36]={0xdd,0x04,0x24,0x00,0x02};
            sock_bee->write(CMD_BEE_ON,sizeof CMD_BEE_ON);
        }
        void fan_connect(void)
        {
            sock_fan->connectToHost(le_hostip->text().toStdString().c_str(),9992);
            connect(sock_fan, SIGNAL(connected()), this, SLOT(send_fandata()));
        }
        void send_fandata(void)
        {
           #if 0
            static int fan_flag=0;
            if(0==fan_flag)
            {
                char CMD_FAN_ON[36]={0xdd,4,0x24,0x00,0x04};
                sock_fan->write(CMD_FAN_ON,sizeof CMD_FAN_ON);
                sock_fan->disconnectFromHost();
                fan_flag++;
            }
            else
            {
                char CMD_FAN_OFF[36]={0xdd,4,0x24,0x00,0x08};
                sock_fan->write(CMD_FAN_OFF,sizeof CMD_FAN_OFF);
                sock_fan->disconnectFromHost();
                fan_flag=0;
            }
            #endif
            char CMD_BEE_OFF[36]={0xdd,0x04,0x24,0x00,0x03};
            sock_fan->write(CMD_BEE_OFF,sizeof CMD_BEE_OFF);
            sock_fan->disconnectFromHost();
        }
        void show_data(void)
        {
            char buf[37] = {0};
            int size = sock2->read(buf, sizeof buf);
            qDebug()<<"recv: "<<size;
            char temp_buf=buf[5];
            char hum_buf=buf[7];
            //qDebug()<<c_buf;
            QString temp_str = QString("%1").arg(temp_buf,0,10);
            QString hum_str_ = QString("%1").arg(hum_buf,0,10);
            le_temp->setText(temp_str);
            le_hum->setText(hum_str_);
            qDebug()<<"successed tooo! ";
        }
         void show_pic(void)
         {
             char buf[320*240*3] = {0};
             int size = sock1->read(buf, sizeof buf);
             qDebug()<<"recv: "<<sizeof(buf);
            QPixmap pix;
            QThread::msleep(100);
            pix.loadFromData((uchar *)buf, size, "jpeg");
            te_pic->setPixmap(pix);
            //sQThread::msleep(120);
         }
    
    private:
        QLabel *te_temp,*te_hostip,*te_port,*te_pic,*te_hum;
        QLineEdit *le_temp,*le_hostip,*le_port,*le_hum;
        QPushButton *bt_led,*bt_start_pic,*bt_start_temp,*bt_start_bee,*bt_stop_bee;
        QTcpSocket *sock1,*sock2,*sock_led,*sock_bee,*sock_fan;
    
    };
    
    
    #endif // WIDGET_H

    这里写图片描述
    服务端部分代码:

    #include "take_pic.h"
    #include <pthread.h>
    #include <sys/mman.h>
    #include <sys/ioctl.h>
    #include <linux/videodev2.h>
    #include <stdio.h>      
    #include <stdlib.h>     
    #include <unistd.h>     
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>      
    #include <termios.h>   
    #include <errno.h>      
    #include <string.h>
    #include <sys/socket.h>
    #include <sys/un.h>
    #include <arpa/inet.h>
    #include <netinet/in.h>
    #include <signal.h>
    
    pthread_mutex_t mut ;   //the lock
    
    //thread get pic
    void thread_getpic()
    {
        get_pic(mut) ;
    }
    
    //thread get data
    void thread_getdata()
    {
        //get data referrence
        get_data(mut) ;
    }
    
    void thread_getled()
    {
        control_led(mut) ;
    }
    
    void thread_getbee()
    {
        control_bee(mut) ;
    }
    
    void thread_getfan()
    {
        control_fan(mut) ;
    }
    
    int main()
    {   
        pthread_t thread_pic , thread_data ,thread_led , thread_bee , thread_fan;
        pthread_create(&thread_pic , NULL , (void *)thread_getpic , NULL) ;
        pthread_create(&thread_data , NULL , (void *)thread_getdata , NULL) ;
        pthread_create(&thread_led , NULL , (void *)thread_getled , NULL) ;
        pthread_create(&thread_bee , NULL , (void *)thread_getbee , NULL) ;
        pthread_create(&thread_fan , NULL , (void *)thread_getfan , NULL) ;
        pthread_join(thread_pic , NULL) ;
        pthread_join(thread_data , NULL) ;
        pthread_join(thread_led , NULL) ;
        pthread_join(thread_bee , NULL) ;
        pthread_join(thread_fan , NULL) ;
    
        return 0 ;
    }

    具体代码请看我的上传文件《嵌入式实训代码》。不足之处还望海涵。

    展开全文
  • 嵌入式实训总结.docx

    2020-08-14 00:35:51
    实训总结 班级卓越1301 姓名刘* 短短三周的很快就过去了在中软国际嵌入式方向班的第二次实习马上就要结束了虽然只有短短的三周但我学会了很多知识学习了在Linux-Fedora14操作系统的环境下完成基于Smart210SDK开发板...
  • 嵌入式实训

    2021-09-20 19:08:32
    今天是实训第一天,介绍了嵌入式的大致内容。稍稍有了点印象。 开始从linux入手。学习C程序在linux下的编写和运行。 之前一点都没有用过linux,这次真的被人推着学东西,汗颜!!! 简单的命令 ls 查看...

    今天是实训第一天,介绍了嵌入式的大致内容。稍稍有了点印象。
    开始从linux入手。学习C程序在linux下的编写和运行。

    之前一点都没有用过linux,这次真的被人推着学东西,汗颜!!!

    简单的命令

    ls查看当前文件夹里的文件
    cd进文件
    cd. .退出文件
    ./直接查看
    mkdir建立文件夹 -r文件夹的参数
    cd /h(oom)tab 自动补齐
    pwd查看路径
    mkdir./根文件
    mkdir…/返回上一级建立文件夹或文件
    man ls查看帮助文件
    :q退出
    :!q强制退出,但又权限可能不能正常退出
    :w写入保存
    格式的含义:自己的权限—同组权限—其他组权限 数字编号 root登陆者 root组名 数字/文件大小 创建日期 文件名

    linux下写程序

    1、编辑器: vim emacs
                           vim:创建文件
                           vim中text.c 的c只是告诉读者是什么文件
    2、两种状态:命令行模式 和输入模式 (a i o)退回esc到命令行
    3、cat text.c查看文件夹里的内容
    4、编辑完成
    5、jcc -o text text.c两次文件,出现绿色可执行文件
    6、./text执行文件

    作业:C语言命令行参数
    老师讲的很认真,我们大学来从来没有一次学这么多的内容,很充实,很用心,从早学到晚,很累但心里很开心!

    展开全文
  • 嵌入式实训心得体会 篇一嵌入式系统原理实验总结报告 嵌入式系统原理实验总结报告 车辆座椅控制系统实验 2014/5/23 嵌入式系统原理实验总结报告 一技术性总结报告 一题目车辆座椅控制系统实验 二项目概述 1....
  • 嵌入式实训心得体会嵌入式实训心得体会篇一:嵌入式心得体会 这学期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领域都用到了嵌入式,学好嵌入式不愁没饭吃。 广义上讲,凡是带有...

    嵌入式实训心得体会

    嵌入式实训心得体会

    篇一:嵌入式心得体会   这学期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领域都用到了嵌入式,学好嵌入式不愁没饭吃。   广义上讲,凡是带有微处理器的专用软硬件系统都是嵌入式系统。如各类单片机和DSP系统。从狭义上讲,那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的专用软硬件系统称为嵌入式系统。嵌入式系统由嵌入式硬件与嵌入式软件组成; 嵌入式硬件以芯片、模板、组件、控制器形式埋藏于设备内部。   理解“嵌入”的概念 主要从三个方面上来理解。   1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。   2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。   3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。。   嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层   1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。   2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。   驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。   3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操   作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。   4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Java方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌

    展开全文
  • 嵌入式实训归来

    2013-10-31 11:53:46
    实训了12天,终于回来了。  安排的实训还是相当垃圾的,没有工钱的,自然不用说。实训其实感觉只是换个地方上课而已,只不过实训动手要多一些。  实训结束了,进入大四了,该为工作做准备了,大学的幸福生活也...
        迪实训了12天,终于回来了。
        安排的实训还是相当垃圾的,没有工钱的,自然不用说。实训其实感觉只是换个地方上课而已,只不过实训动手要多一些。
        实训结束了,进入大四了,该为工作做准备了,大学的幸福生活也到此为止了。该去面对社会了。
        其实实训也像我想象中的那样,其实也学不到多少东西,那里的老师的知识量也有限,可能是我接触过linux一段时间吧,对我来说,跟本不能算学习,只能算是复习。
        当然实训还是亲自试验了烧写内核,制作文件系统等之类的东西,至于编写驱动,裁剪内核,基本没大涉及,而且,实训环境相当恶劣,没有因特网,碰到问题,也不能去搜索问题。第二,实训老师给的文档,错误太多,浪费很多时间。再一点,硬件设备毛病很多,比如,串口线,老师拿了8根串口线,只有2根才是好的。
        做项目的时候,两天才拿到板子,再等两天才拿到好的串口线,再过两天才拿到短信猫,再过两天就交项目。真够郁闷的。
        我们做的是个gsm无线数据传输的一个系统,包括,采集数据到开发板,开发板通过网络传送数据到一个switch(用pc模拟),pc通过网络向远端服务器发送数据,如果发不成功,则要以短信的方式发送数据。
        另外要实现通过网页的形式配置开发板,就像配置路由器似的。
        总得来说不太困难,主要还是因为硬件太烂,浪费了很多时间。老师倒说,由于时间太急,找得个小厂子生产的开发板,我想说不定这些是上一届学生培训遗留的开发板,这不过是个培训中心,很抠门的。都2008了,还装着个windows 2000系统,另外,另人受不了的是red hat 9.0,哎。
        最后,令人很气恼的是,伙食质量太差,而且超贵,哎这群吸血鬼。
    <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
    阅读(418) | 评论(1) | 转发(0) |
    给主人留下些什么吧!~~

    chinaunix网友2008-09-08 14:07:44

    社会本来如此,只是因为一直在学校里吧。社会是很快成长人的。慢慢成长吧。多接纳一些东西 。

    评论热议
    展开全文
  • 嵌入式实训day2

    2020-07-06 17:55:24
    生成依赖文件abc.dep,后面Makefile会用 Q3:总结CMake用法 A3: CMake用法总结 CMakeLists.txt首部增加对CMake的版本限制: CMAKE_MINIMUN_REQUIRED(VERSION 2.6) 定义工程名: PROJECT (MyProject [CXX] [C] [JAVA])...
  • 课时总结嵌入式C编程的语法、使用 嵌入式为什么要移植操作系统? 提供软件的移植性; 操作系统提供了多任务操作; 操作系统提供了丰富的网络协议栈; 操作系统将所有设备抽象成文件,方便访问设备; Linux系统...
  • 课程总结: 1、函数的三要素:函数名、形参、返回值 函数名:命名——自注释性 动词+名词 函数参数:参数是什么类型,形参就要定义成什么类型; 传地址和返回值: 只当使用不修改实参变量的值,传实参变量名 当使用...
  • 嵌入式Linux智能实训大纲 一、 什么是嵌入式  通俗理解,把计算机嵌入到各种设备中,如机械控制设备、汽车控制设备、航天设备、环境监测设备、家电设备等,并且通过计算机来控制设备完成自动化、智能化的操作。...
  • 总结gcc静态库和动态库的制作 总结CMake用法 项目开发日报表 编译器三级优化分别优化了哪些? 第一级:代码调整 代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:...
  • 附实训报告封面及基本内容 仲恺农业工程学院 实训总结报告 实习环节嵌入式系统工程实训 1 Proteus ISIS 安装菜单使用及心得 1.1Proteus ISIS 的安装 步骤 1双击 proteus_setup7. 5.exe开始安装 _K商駆动 Proteus 7,5...
  • 附实训报告封面及基本内容 仲恺农业工程学院 实训总结报告 实习环节 嵌入式系统工程实训 1 Proteus ISIS 安装菜单使用及心得 1.1 Proteus ISIS 的安装 步骤 1双击 proteus_setup7. 5. exe开始安装 步骤 2点击 Next ...
  • 附实训报告封面及基本内容 仲恺农业工程学院 实训总结报告 实习环节 嵌入式系统工程实训 1 Proteus ISIS 安装菜单使用及心得 1.1 Proteus ISIS 的安装 步骤 1双击proteus_setup7.5.exe开始安装 步骤 2点击Next 步骤 ...
  • 嵌入式工程实训 本人进度计划以及任务 学习部分库函数 本日任务完成情况 初步掌握及应用如fopen,fwrite,fread 。使用man 3来查看库函数的说明使用方法。 本日开发中出现的问题汇总 fwrite和write之间的...
  • 嵌入式工程实训每日小结(七)

    千次阅读 2018-10-16 18:20:15
    嵌入式工程实训 本人进度计划以及任务 linux系统的线程间通信简单化应用(改善版) 本日任务完成情况 完成了一个类似微型版QQ的登录和注册功能。在登录成功后有私聊和退出功能。 本日开发中出现的问题汇总 ...
  • 嵌入式工程实训 本人进度计划以及任务 linux系统的线程间通信简单化应用 本日任务完成情况 完成了一个类似微型版QQ的登录和注册功能。 本日开发中出现的问题汇总 在接收和发送程序中,注意结构体中定义的...
  • 嵌入式工程实训 本人进度计划以及任务 linux系统的线程间通信简单化应用(加强改善版) 本日任务完成情况 完成了一个类似微型版QQ的登录和注册功能。在登录成功后有私聊和退出功能。在登录成功之后加入查看...
  • 苏嵌嵌入式Linux实训 第七天 学习总结 1、嵌入式C编程:语法、使用 2、嵌入式Linux C编程:在Linux上使用C语言调用操作系统功能接口开发应用程序。 3、嵌入式为什么要移植操作系统? (1)提供软件的移植性; (2)...
  • linux 实训 总结2

    2012-08-15 19:39:04
    嵌入式精品课程实训总结,linux驱动开发
  • 本次实训教学由苏嵌教育这个机构来执行的,在学习和了解这门实训之前,我身边学长学姐甚至我身边的小伙伴他们早已在这样的嵌入式应用中“摸爬滚打”,比我有更好的基础和学习经验,因为羡慕所以崇拜! ...
  • 苏嵌实训-嵌入式Linux 第5天 今日进度及任务 函数、内存管理、关键字、符合数据类型 任务完成情况 课堂内容总结完成 开发中出现的问题汇总 无 未解决问题 无 本日开发收获 对函数、内存管理、关键字和...
  • 苏嵌嵌入式Linux实训 第四天 一、主要学习内容 今天我们学习了嵌入式C开发实战,老师带我们复习了数组指针等C语言知识点,并为我们总结了C语言简单知识点,最后还带我们进行了编程训练,加深了我对C语言的理解。 二...
  • 2048小游戏----嵌入式系统实训

    千次阅读 多人点赞 2019-03-12 00:37:14
    嵌入式系统设计实训 引言 本次嵌入式系统实训式设计一款2048小游戏,在Linux编译环境下及ARM Cortex-A8开发平台下的,实现2048游戏的开发,且对其进行性能分析。《2048》是一款比较流行的数字游戏,最早于2014年3...
  • 今天是嵌入式学习的第二天,也是正式教学开始的第一天,全程由梁老师为我们讲解,由于仅仅是新手的接触,不懂的地方还有很多,有时甚至跟不上老师的节奏,当然这也需要我们课后的复习和总结,不断积累才能不断收获!...
  • 【苏嵌实训-嵌入式 linux 第 4天】 今日进度以及任务 学习了gcc,gdp,makefile相关知识 本日任务完成情况 (详细说明本日任务是否按计划完成,...
  • 今天是苏嵌嵌入式Linux实训 第三天 1.编译器三级优化分别优化了哪些? 第一级:代码调整 代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,492
精华内容 596
关键字:

嵌入式实训总结