全志V3S 调试串口更改或关闭

有时项目外设比较多,很容易造成串口不够用的情况。

最近就遇到了,新增加一个GPS模块串口的,串口现在外部只有原来的调试串口可以用,所以

尝试将调试口更改为普通串口。

经过网上看大神们的文章和自己摸索,总结如下:

V3S 修改调试串口步骤:

第一步修改设备树:

路径~/corelinux/v3ssdk/tools/pack/chips/sun8iw8p1/configs/tiger-spinand-standard/sys_config.fex

根据需求修改对应的uart.
;[uart_para]
uart_debug_port =0;

107 ;[uart_para]
108 ;uart_debug_port = 0
109 ;uart_debug_tx = port:PB08<3><1><default><default>
110 ;uart_debug_rx = port:PB09<3><1><default><default>
111
112 uart_debug_port = 2
113 uart_debug_tx = port:PB00<2><1><default><default>
114 uart_debug_rx = port:PB01<2><1><default><default>

第二步修改系统环境配置文件

路径~/corelinux/v3ssdk/tools/pack/chips/sun8iw8p1/configs/default/env.cfg

更改console =ttyS0,115200 ->console =ttyS2,115200

 

第三步修改终端重定向串口

路径:prebuilt/rootfs-override/etc/inittab

ttyS0::respawn:/sbin/getty -L  ttyS0 0 vt100 # GENERIC_SERIAL

ttyS2::respawn:/sbin/getty -L  ttyS2 0 vt100 # GENERIC_SERIAL

 

将调试串口断掉方法。
将以上3步骤对应的设置都注释掉

 

修改后编译调试:

用ssh网口进行调试。

查看串口波特率等信息:
stty -F /dev/ttyS0 -a #ttyS0为要查看的串口

设置串口参数:
stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8
该命令将串口1(/dev/ttyS0)设置成115200波特率,8位数据模式。

根据信息配置电脑的串口助手

echo "test" > /dev/ttyS0

电脑串口助手 即可收到 test.

串口助手发送test 一定要加上回车+换行

终端 cat /dev/ttyS0

 

过程中遇到的问题:

在linux 下 cat /dev/ttyS0 接收.

但奇怪的是 cat /dev/ttyS0没有显示受到认识数据,反而是我的串口调试助手收到了返回!!

linux端不用 cat /dev/ttyS0读的时候没有返回!

原因:

1.windows要发送可显示字符,cat才能显示出来。

2.串口调试助手设置了回显功能。

3.windows的串口调试软件发送时多发一个回车键就行了,而且之前发过去没显示的都会显示出来。这跟linux下printf不加"\n"就没显示是一个道理的。

 

本文转载于网络 如有侵权请联系删除

相关文章

  • Spark UI (3、4、5) - Storage、Environment、Executors页面

    接上文SparkUI(2)-Stages页面3、Storage页面Storage页面展示的是作业在执行过程中缓存(cache)的数据信息,包含cacherdd的大小和分布节点.注意:Storage页面只在运行时显示,作业结束后是不会展示任何信息的。4、Environment页面Environment页面展示了作业的运行环境和作业参数,用户可以在这里确认环境和参数设置是否符合预期。4.1运行环境和作业参数4.2系统参数5、Executors页面Executors选项卡提供了关于内存、CPU核和其他被Executors使用的资源的信息。这些信息在Executor级别和汇总级别都可以获取到。一方面通过它可以看出来每个excutor是否发生了数据倾斜,另一方面可以具体分析目前的应用是否产生了大量的shuffle,是否可以通过数据的本地性或者减小数据的传输来减少shuffle的数据量。Summary:该application运行过程中使用Executor的统计信息。Executors:每个Excutor的详细信息(包含driver),可以点击查看某个Executor中任务运行的详细日志。

  • 谷歌让AI芯片学会“下崽”,下一代TPU就让AI自己设计

    月石一发自凹非寺 量子位报道|公众号QbitAI设计一块AI芯片有多难?这么说吧,围棋的复杂度10360,而芯片则是102500,你感受一下……△围棋的复杂度一般来说,工程师们设计一块芯片,少则需要几周,多则好几个月。现在,AI生产力来了!AI自己动手,竟然用6小时就设计出一块芯片。最近,这项谷歌的研究登上了Nature杂志。布局时间缩短数倍小小的一块芯片包括了数十亿个晶体管,由它们组成的数千万个逻辑门就是标准单元,此外还有数千个存储块,称为宏块。确定它们的位置,也就是布局规划,对芯片设计至关重要。因为这直接关系到如何布线,进而影响着芯片的处理速度和电源效率。但是,光是放置宏块这一步就非常耗时,为了给标准单元留出更多空间,每一次迭代都需要几天或几周时间。△人类设计和AI设计芯片的平面图(灰色块为宏块) 完成整个布局,则要花费数周甚至数月。现在,谷歌的研究人员提出了一种具有泛化能力的芯片布局方法。它能够基于深度强化学习,从之前的布局中进行学习,然后生成新的设计方案。整体架构是这样的:由于AI模型需要学习10万个芯片布局,为了保证速度,研究人员设计了一种奖励机制,基于线路长度和布线拥塞的近

  • 免杀技巧 | PHP免杀木马绕过某盾

    对于网站木马总重要的就是隐匿性和免杀.在说免杀之前,我想先说说有关于隐匿性的两个小细节.隐匿性:1.木马文件的命名例如你不可能将木马命名为backdoor.php或者muma.php等等,根据网站网页命名的方式决定木马文件的命名2.上传的木马是否要使用参数加密使用参数加密的木马对于机器来说不容易识别,对于人来说却十分容易识别,因为没有一个正常的GET请求会对参数进行加密不使用参数加密的木马对于机器来说很容易识别,对人来说不太容易识别相对于使用参数加密的木马来说.最好的解决办法是同时上传这两种木马.免杀:免杀最重要的目的就是尽可能的减少静态特征以及关键字的拼接常用的免杀技巧:1.字符串拼接$a=‘ev’; $b=‘al’; $c=$a.$b;//eval复制2.动态函数$a=‘eval’; $b=‘_GET’; $a($$b[‘muma’]);//eval($_GET[‘muma’]);复制3.进制转换chr(ascii) $a=chr(61);//$a=‘=’ ord(string) $a=ord(‘=’);//$a=61 $a=chr(36).chr(95).chr(ord(‘P’)

  • Day1. 数据可视化-- 概述

    Python数据可视化介绍做为⼀名数据分析师,掌握可视化技能是必不可少的。大部分情况下,上级更关心呈现的结果。当可视化的结果呈现在你眼前时,你才能直观地体会到“数据之美”。图片在内容表达上,要远胜于文字,它不仅能体现数据真实性,还能给人很大的想象空间。我们经常听到的Tableau和PowerBI是商业可视化工具,在可视化灵活分析上功能强⼤,主要目标用户是较专业的数据分析师。同时在工作场景中使用率高,因此掌握对于晋升和求职都很有帮助,之后DataScience也会推出相关培训。Python是数据分析的首选语言,如果我们的学习目标是数据挖掘工程师,或者算法工程师,那么最重要的就是要了解,并且熟练掌握Python的数据可视化,在校学生以及科研人员也可使用Python进行可视化。此外当我们在使用Python与数据库交互时,获取数据后直接在Python进行分析和观察会更为方便。Python里包括了众多可视化库,比如:Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts、Mapbox和Geoplotlib。其中使用频率,最需要掌握的就是Matplotlib和Seabo

  • LeetCode 40.最小的k个数

    题目面试题40.最小的k个数[1]描述输入整数数组arr,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4解题思路现将传入的数组arr进行排序(任意排序方法皆可,此处采用冒泡);新定义一个最终结果的int型数组resultArr,长度为传入的k;将排序好的数组的前k个值传入上一步中所定义的数组resultArr中;返回最终结果数组resultArr;实现/** *CreatedwithIntelliJIDEA. *Version:1.0 *Author:cunyu *Email:cunyu1024@foxmail.com *Website:https://cunyu1943.github.io *Date:2020/3/2012:37 *Project:LeetCode *Package:PACKAGE_NAME *Class:Forty *Desc:40.最小的k个数 */ importjava.util.ArrayList; importjava.util.Arrays; publicclassForty{ publi

  • 供应链安全:安全建设中的第三方组件依赖问题

    背景 着力点:接入、发现、防护、管理接入发现漏洞软件许可协议防护管理做组件分析的时机参考资料OWASPTOP10列表中反复强调的“使用含有已知漏洞的组件”逐步成为供应链安全的显著问题,外部研究机构显示78%的漏洞是在项目中的间接依赖中被发现的。读者们不妨想一想被ApacheStruts和fastjson支配的恐惧,就知道依赖安全类的感知和修复过程非常复杂。所以目前的SDLC中的软件安全领域越来越关注软件成分分析,将其作为一个独立的安全建设领域很有必要,今年上半年默安科技和360代码卫士分别发布了对应的产品,笔者试用后对产出的指标并不十分满意,本文重点阐述一些思考并为读者介绍如何借用开源的力量做好依赖安全。着力点:接入、发现、防护、管理下图是笔者总结的第三方组件流通图,可以看到组件的分发过程很零散:接入读者们可否有信息回答这个问题:"作为安全负责人,你知道公司使用和开发的应用中使用的开源组件都是最新的,已经安装了所有的重要安全补丁?"答案一定是窘迫的,如果连自己公司正在使用哪些软件,用什么开发的系统都不知道,何谈为其安装安全补丁呢?原因在于许多企业所用的开源组件并没有

  • 把日志灌入到Elasticsearch的好处以及具体实现

    一般来讲一个高并发高性能的系统,日志是非常庞大的,随时可能高达几个T,一台服务器的硬盘极有可能装不下,而Elasticsearch的集群可以分布在不同的机器上,而又对整个集群作为一个整体,对其大容量的内容进行存储以及它的最牛掰的能力--检索.首先在配置文件中做如下配置elasticsearch: clusterName:aubin-cluster clusterNodes:192.168.5.182:9300复制@Getter @Setter @Configuration @ConfigurationProperties(prefix="elasticsearch") publicclassElasticSearchConfig{ privateStringclusterName; privateStringclusterNodes; /** *使用elasticsearch实现类时才触发 * *@return */ @Bean @ConditionalOnBean(value=EsLogServiceImpl.class) publicTransportCl

  • 深入理解Java内存模型JMM

    Java内存模型Java内存模型(JMM)是一种抽象的概念,并不真实存在,它描述了一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。试图屏蔽各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。注意JMM与JVM内存区域划分的区别: JMM描述的是一组规则,围绕原子性、有序性和可见性展开;相似点:存在共享区域和私有区域主内存与工作内存处理器上的寄存器的读写的速度比内存快几个数量级,为了解决这种速度矛盾,在它们之间加入了高速缓存。加入高速缓存带来了一个新的问题:缓存一致性。如果多个缓存共享同一块主内存区域,那么多个缓存的数据可能会不一致,需要一些协议来解决这个问题。所有的变量都存储在主内存中,每个线程还有自己的工作内存,工作内存存储在高速缓存或者寄存器中,保存了该线程使用的变量的主内存副本拷贝。线程只能直接操作工作内存中的变量,不同线程之间的变量值传递需要通过主内存来完成。数据存储类型以及操作方式方法中的基本类型本地变量将直接存储在工作内存的栈帧结构中;引用类型的本地变量:引用存储在工作内存,

  • 为新兴物联网公司提供五项免费营销技巧

    原文作者:KevinKostiner原文地址:https://internetofthingsagenda.techtarget.com/blog/IoT-Agenda/Five-free-marketing-tips-for-emerging-IoT-companies1.找到一个榜样如果你想在生活中取得成就,你可以盲目地进入它,而不需要任何形式的建议。但我们都希望我们的想法发展成为成功的产品和公司。物联网最大的挑战之一是克服这个生态系统的嵌入式复杂性,,以一种任何人,尤其是非技术人员都能理解的方式传达你的信息。你可能会犯几个错误,除非你找到一个成功的人,并实现他们的一些工具和技术。这并不意味着要复制,而是要分析是什么让它起作用,看看它是否能在你的商业部门中得到利用。如果你的榜样是Cisco(思科)、IBM、Verizon(威瑞森),那就不重要了。例如,看一看Bosch(博世)运营的活动,它以一种有趣且易于理解的方式展示了许多IoT的好处。这则广告解释了为什么博世成为了IoT的主要公司之一。你可以向博世学习,制作一个有趣的、有创意的视频,吸引你的观众,让他们想要更多。不知道如何找到一

  • 云麦CEO汪洋:做一杆不平凡的秤

    汪洋,1990年生,曾被4家中学开除的奇葩同学,16岁上学时顺便做了一家超过20万会员的游戏社区、2010年开始正式创业做应用商店,后猎豹移动全资收购,2014年毅然放弃过半股份离开重新创业,成立了云麦YUNMAI。云麦好轻智能体脂秤是云麦首款智能硬件,目前京东同品类销量第一,随后云麦携手京东发布了好轻Color智能体脂秤,99元彻底打破行业底线。全网评分最高,销量最大。同时,云麦也是最早加入QQ健康的公司之一。下面是其在4月20日腾讯产品家沙龙(中国香港站)上的演讲全文。大家好,我是一个90后创业者,就像刚刚主持人讲到的我的人生是比较坎坷的,中学被劝退四次,那个时候非常调皮,我觉得收拾包袱走也是很酷的事情。最后一次被劝退的时候,我父亲把我从学校接回去。在路上他就把车停在了路边,非常非常地沉默,一句话也没说,然后就大哭了一场,我站在旁边不知道说什么。从那一刻开始,我就感觉到这样下去不行了,真的要开始好好读书了。我的父亲哭完以后,很沉默地把我送回家。送回家以后,我就在想既然不调皮了,我干什么呢?那时候我喜欢做网站,就做各种小网站。我自学,每次做一个成功的网站就跟我朋友炫耀一下,无数次的

  • Django补充及初识Ajax

    Django创建一对多表结构首先现在models.py中写如下代码:fromdjango.dbimportmodels #Createyourmodelshere. classBusiness(models.Model): caption=models.CharField(max_length=32) classHost(models.Model): nid=models.AutoField(primary_key=True) hostname=models.CharField(max_length=32,db_index=True) ip=models.GenericIPAddressField(db_index=True) port=models.IntegerField() b=models.ForeignKey(to="Business",to_field="id")复制这里有几个知识点:1、b=models.ForeignKey(to="Business",to_field="id")这

  • Java学习路线

    java学习基础针对Java零基础入门学习者,比较详细的知识点总结和学习路线数据库数据库是程序员必须要掌握中知识点,详细的学习思路和面试题,适用/适合人群:拥有Java语言并可以实现网站爬取数据并分析目标:掌握mysql,Oracle在各个平台上的安装及使用Mysql数据库基础1.mysql概述、优点、运行原理及内存结构2.mysql数据类型3.mysqlDDL语句的使用4.SQL语言的使用5.DML语句的介绍及使用6.SQL事务7.SQL查询机制、查询基础、技巧、查询优化;Mysql数据库高级1.mysql数据库引擎分类2.mysql事务3.mysql表4.mysql数据类型5.mysql视图6.mysql索引7.mysql分页8.SQL语句优化技巧Oracle实战1.Oracle安装与调试2.Oracle数据类型3.Oracle与MySQL对比4.Oracle数据结构概述5.Oracle运行原理6.Oracle内存结构7.Oracle表空间8.用户,表,序列的创建及使用9.Oracle索引10.Oracle分区表的创建及使用PL/SQL实战1.PL/SQL基础知识2.异常处理3.游

  • 自动装配

    Bean自动装配 自动装配是Spring满足bean依赖一种方式 Spring会在上下文中自动寻找,并自动给bean装配属性 在Spring中有三种装配的方式 在xml中显示的配置 在java中显示配置 隐式的自动装配bean ByName自动装配 ByType自动装配 <beanclass="com.haoyang.pojo.cat" <beanclass="com.haoyang.pojo.cat"> //byName:会自动在容器上下文中查找和自己对象set方法后面的值对应的beanid //byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean <beanid="people"class="com.haoyang.pojo.people"autowire="byType"> <propertyname="name"value="我是"> </bean> 复制 小结: byname的时候,需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性set方法的值一致 byType的时候,

  • HNOI2009 最小圈

    传送门 省选之前再水一发 当做01分数规划+spfa判负环的板子题。二分答案mid,之后每条边边权-mid,在上边判是否有负环即可。 这里没有使用入队n次的spfa判负环,用的是基于dfs的SPFA……我也不知道哪个更好其实…… #include<bits/stdc++.h> #definerep(i,a,n)for(inti=a;i<=n;i++) #defineper(i,n,a)for(inti=n;i>=a;i--) #defineenterputchar('\n') #defineprpair<int,int> #definempmake_pair #definefifirst #definescsecond usingnamespacestd; typedeflonglongll; constintM=10005; constintN=2000005; constintINF=0x3f3f3f3f; constdoubleeps=1e-10; intread() { intans=0,op=1;charch=getchar(); whi

  • iOS- Swift:使用FMDB进行数据库操作(线程安全:增删改查)

    1.前言   GitHub上2000多颗星的FMDB数据库框架想来大家都很熟悉, 今天用Swift对其进行了一个完成的数据存储读流程 写完之后用博客分享之,与大家一起交流, 希望对需要的朋友提供些帮助   那么如何如何用Swift使用FMDB进行数据库操作呢?   2.Swfit:fmdb    2.1.导入基本框架   先上GithubClone下来FMDB原始框架 https://github.com/ccgus/fmdb   将里面fmdb文件夹拖到自己工程里 以及extra文件夹下Swiftextensions文件夹拖入自己工程   然后在自己的工程导入iOS SDK, C语言库 libsqlite3.dylib   2.2.单例化封装数据库管理对象       2.3.创建数据库,打开数据库   在初始化数据库管理对象时创建数据库并打开     2.4.fmdb添加数据     2.5.fmdb删除数据     &n

  • nginx配置其他的服务和ip禁止访问

    被别人的域名指定向自己的ip如何配置 http{ log_formatmain'$remote_addr-$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"'; access_log/var/log/nginx/access.logmain; sendfileon; tcp_nopushon; tcp_nodelayon; keepalive_timeout65; types_hash_max_size2048; include/etc/nginx/mime.types; default_typeapplication/octet-stream; include/etc/nginx/conf.d/*.conf; server{ listen7070; server_namewww.syscal.xyz;#指定的域名 root/usr/share/nginx/html; #Loadconf

  • sql server lock

    各种锁的介绍:https://www.cnblogs.com/bdqczhl/p/13785567.html 典型用法: --在第1个连接中执行以下语句 BEGINTRAN;UPDATEMsgSETTitle='公告'WHEREID='55BA3F4B-184C-466B-995F-05749BD55A2B';WAITFORDELAY'00:00:10';--等待10秒COMMITTRAN;   --在第2个连接中执行以下语句 SELECT* FROMMsg WHEREID='832A1C27-FF79-4040-A3A8-7C7E97ACE208'; 查其它行,秒开 SELECT* FROMMsg WHEREID='55BA3F4B-184C-466B-995F-05749BD55A2B'; 查被锁的行,需要等待 SELECT* FROMMsg 查所有的行,需要等待   上面tran中的是update语句会自动锁行(锁住被update的行) 如果是select语句,需要手动加上with

  • cdn

    CDN的全称是ContentDeliveryNetwork,即内容分发网络。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。 纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色越来越多也越来越细分。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。

  • SQL

    IAP:InformationArchitecturePrinciple(信息架构原则)    涵盖三个领域:数据库设计和开发、企业级数据中心管理和商业智能分析。 OLTP:On-LineTransactionProcess(联机/在线事务处理)   释义:指业务人员或者用户对数据库进行大量的增加、修改、删除等操作。 ETL:ExtractTransformandLoad(提取、转换、加载)   一般用于数据仓库利用ETL将各种格式的数据和架构转换为便于数据检索的通用格式,以从整个企业的多个数据存储中收集大量数据。 ACID:(数据库事务正确执行的四个基本要素)   原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)   Atomicity:     整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。   Consistency:      一个事务可以封装状态改变(除非

  • static静态方法的优缺点

    static可以修饰成员变量,成员方法,代码块,类特点: static修饰的方法和变量,为类所属方法和变量,不会在对象销毁时销毁,所以生命周期较长。被static修饰的内容会随着类的加载而加载,优先于对象存在,成员变量和成员方法可以通过类名直接调用并被该类下所有对象共享。 在static方法中,不能出现this,super,因为其优先于对象而存在使用:在同一类中,当某一数据被所有实例化对象共享时,可以用static修饰   //关于c语言中static的使用 C程序一直由下列部分组成:1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。5)堆——动态存储分。在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。1)内存中的位置:静态存储区(静态存储

  • 这些git技能够你用一年了

    用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景。嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交流。 git设置关闭自动换行 gitconfig--globalcore.autocrlffalse 为了保证文件的换行符是以安全的方法,避免windows与unix的换行符混用的情况,最好也加上这么一句 gitconfig--globalcore.safecrlftrue gittag使用 gittag#列出当前仓库的所有标签 gittag-l'v0.1.*'#搜索符合当前模式的标签 gittagv0.2.1-light#创建轻量标签 gittag-av0.2.1-m'0.2.1版本'#创建附注标签 gitcheckout[tagname]#切换到标签 gitshowv0.2.1#查看标签版本信息 gittag-dv0.2.1#删除标签 gittag-av0.2.19fbc3d0#补打标签 gitpushoriginv0.1.2#将v0.1.2标签提交到git服务器 gitpushorigin–tags#将本地所有标签一次性提

相关推荐

推荐阅读