野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1741|回复: 1

[经验\资料] 用VS2017或者VS2019搭建Debian开发板远程交叉编译教程

[复制链接]
发表于 2023-5-19 09:22:18 | 显示全部楼层 |阅读模式
1.卸载板子上原始的SSH服务软件(板子配套的SSH不给力):  sudoapt-get purge openssh-server
更新源列表
  sudo apt-get update
安装SSH服务
  sudo apt-get installopenssh-server
打开服务
  sudo /etc/init.d/ssh start
查看服务是否正常
  ps -e|grep ssh
应该会出现
  6212 ?       00:00:00 sshd


2.安装VS2017软件到PC端,安装必备调试软件到嵌入式开发板
  PC机上的VS2017自行安装,记得选调试linux选项
  嵌入式板子操作:
  更新源列表
   sudo apt update
  安装必备的环境
  sudo apt-get install openssh-server g++gdb gdbserver make ninja-build rsync zip
开启服务
  sudo service ssh start
3.创建调试工程
   野火论坛202305190910197014..png
4.编写代码:


#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <unistd.h>
#include <termios.h>


const char default_path[] = "/dev/ttymxc4";

/*
*串口配置成功返回0,失败返回-1;
*/
int set_uart(int fd, int nSpeed, int nBits, char nEvent, int nStop);

int main(int argc, char* argv[])
{
        int fd;
        int res;
        char* path;
        char buf[1024] = "Embedfire tty send test.\n";

        if (argc > 1)
        {
                path = argv[1];
        }
        else
        {
                path = (char*)default_path;
        }
       
        fd = open(path, O_RDWR);
        if (fd < 0)
        {
                perror(path);
                exit(-1);
        }

        if (set_uart(fd, 115200, 8, 'n', 1))
        {
                printf("set serial error\n");
        }

        while (1)
        {
                write(fd, buf, strlen(buf));
                //printf("send res = %d bytes data: %s",strlen(buf), buf);
                memset(buf, 0, 1024);
                res = read(fd, buf, 10);
                if (res > 0)
                {
                        printf("Receive res = %d bytes data: %s", res, buf);
                }
        }
        close(fd);
        return 0;
}

int set_uart(int fd, int nSpeed, int nBits, char nEvent, int nStop)
{
        struct termios opt;

        //清空串口接收缓冲区
        tcflush(fd, TCIOFLUSH);

        //获取串口配置参数
        tcgetattr(fd, &opt);

        opt.c_cflag &= (~CBAUD);    //清除数据位设置
        opt.c_cflag &= (~PARENB);   //清除校验位设置

        //opt.c_iflag |= IGNCR;       //忽略接收数据中的'\r'字符,在windows中换行为'\r\n'
        opt.c_iflag &= (~ICRNL);    //不将'\r'转换为'\n'
        opt.c_lflag &= (~ECHO);     //不使用回显

        //设置波特率
        switch (nSpeed)
        {
        case 2400:
                cfsetspeed(&opt, B2400);
                break;

        case 4800:
                cfsetspeed(&opt, B4800);
                break;

        case 9600:
                cfsetspeed(&opt, B9600);
                break;

        case 38400:
                cfsetspeed(&opt, B38400);
                break;

        case 115200:
                cfsetspeed(&opt, B115200);
                break;

        default:
                return -1;
        }

        //设置数据位
        switch (nBits)
        {
        case 7:
                opt.c_cflag |= CS7;
                break;

        case 8:
                opt.c_cflag |= CS8;
                break;

        default:
                return -1;
        }

        //设置校验位
        switch (nEvent)
        {
                //无奇偶校验
        case 'n':
        case 'N':
                opt.c_cflag &= (~PARENB);
                break;

                //奇校验
        case 'o':
        case 'O':
                opt.c_cflag |= PARODD;
                break;

                //偶校验
        case 'e':
        case 'E':
                opt.c_cflag |= PARENB;
                opt.c_cflag &= (~PARODD);
                break;

        default:
                return -1;
        }

        //设置停止位
        switch (nStop)
        {
        case 1:
                opt.c_cflag &= ~CSTOPB;
                break;
        case 2:
                opt.c_cflag |= CSTOPB;
                break;
        default:
                return -1;
        }
        //设置串口
        tcsetattr(fd, TCSANOW, &opt);

        return 0;
}

5.设置连接
   野火论坛202305190913594898..png
6.Debug调试,不用写MAKE
   野火论坛202305190919284387..png
7.在开发板上也运行试试
   野火论坛202305190920191920..png

   野火论坛202305190920457843..png
输入指令:
cd /home/ubuntu/projects/serial4_demo/bin/ARM/Debug/
./s+tab键带入应用程序,然后回车
野火论坛202305190922069046..png
  Enjoy!!



  

回复

使用道具 举报

发表于 2023-6-1 23:08:16 | 显示全部楼层
厉害啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-20 10:56 , Processed in 0.048662 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表