
嵌入式 C 编程
文章平均质量分 50
本人以前是搞前端windows下的C++,c#的编程的,现在学习嵌入式c编程,会将所学进行记录,希望共勉。
six2me
懒人推动科技进步,学习编程啊脚本啊目的就是要做相同的工作,但是可以懒,懒到极致才是目标!解决实际问题最重要。
领域:嵌入式编程,c#,c,c++
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式系统中lrzsz的移植(可用于串口发送文件)笔记
在工作中,我们会经常遇到需要使用的指令不存在,比如ethtool,iperf3,等等,这个时候我们就需要将文件拷贝到开发板中,如果是文本文件,那么还可以使用拷贝粘贴的方式转换,但是像这种二进制文件就没有办法了,当然你如果已经连接网络,可以使用ssh,ftp,nfs等方法,这些不是本文要实现,因为我一般就只连接串口。经过研究实践,将lrz,lsz工具移植到了嵌入式系统中,好了,进入正题。从网络上搜索到lrzsz的源代码包,搜索的关键字可以是“lrz串口”等相关的,这里列出了一个地方:https://ohse原创 2022-06-01 01:00:00 · 923 阅读 · 0 评论 -
嵌入式开发输出调试信息的几种方法(常规法及非常规法)
这篇文章对于研发查找问题和测试都有很大帮助,在这里保存记录一下。论语》有云:“工欲善其事,必先利其器”。输出调试信息是软件开发中必不可少的调试利器,在出现bug时如果没有调试信息将会是一件令人头痛的事。本文主要介绍在嵌入式开发中用来输出log的方法,这些方法都是在实际开发过程中使用过的。嵌入式开发的一个特点是很多时候没有操作系统,或者没有文件系统,常规的打印log到文件的方法基本不适用。最常用的是通过串口输出uart log,例如51单片机,只要实现串口驱动,然后通过串口输出就可以了。这种.转载 2021-05-27 08:25:16 · 947 阅读 · 0 评论 -
嵌入式开发板加载U盘,U盘测试
在插入优盘前插入U盘提示:在执行lsusb和df命令和上面的图形对比可以看出。设备列表中怎进GIA了一个GL827L的 SD/MMC/MS 的读卡器设备在df返回可以看到一个 /dev/sda2的存储,mount到了 /run/media下,名称为sda2 ,从上面可以看到u盘默认mount到 run/media 下了。可以手动umountUmount –v /run/media/sda1 注意不能在当前目录下卸载...原创 2022-01-08 01:00:00 · 511 阅读 · 0 评论 -
嵌入式系统老化检测rtc
我们可以使用hwclock检测rtc功能是否正常,不说了,直接上脚本root@forlinx:~# cat testrtc.sh #!/bin/bashwhile truedo echo "***test rtc starting***" rtctime=`date +"%Y-%m-%d %H:%M:%S"` date -s "$rtctime" hwclock -w [ $? -eq 0 ] && echo "`date +%T` hwclock -w succes原创 2022-03-14 01:00:00 · 424 阅读 · 0 评论 -
测试脚本的实用性:谈嵌入式系统在型式试验中的脚本应用
产品在定型前,嵌入式系统需要对设备进行一系列的试验,包含环境性试验和可适应性试验,在这里谈谈可适应性中脚本的应用。环境描述:设备需要做emc试验,包含静电,脉冲和浪涌试验。要验证设备在做试验的过程中是否有损伤、间歇性异常等不良情况,就需要对设备进行实时监控。这样就需要对设备进行在线监控。当然开发一个上位机软件实时连接设备在线监测是最理想的状态,但是需要消耗大量的人力和物力,在这里我们使用脚本来实现,消耗的时间较少,当然,我们今天的目的不是研究如何使用脚本监测硬件状态,略过不说...原创 2021-07-17 10:15:19 · 365 阅读 · 0 评论 -
嵌入式系统之判断命令是否存在
这2天整理脚本,准备将一个脚本优化成可适用于多个平台的通用脚本。实验脚本显示温限数据 echo "temperature up = `cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp`" | tee -a $logname while true do echo "**********************************************************"原创 2022-05-10 06:30:00 · 239 阅读 · 0 评论 -
使用grep显示符合条件的附近的行
我们使用grep可以直接定位到包含内容的行的数据,但是有写时候的信息不是一行就能描写清楚的,需要多行数据,这样就需要我们要得到符合条件的附近的行数,可以使用这个命令来完成。如:forlinx@ubuntu:~$ ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.205.132 netmask 255.255.255.0 broadcast 192.16原创 2022-02-15 17:30:00 · 2804 阅读 · 0 评论 -
变量引用之双引号的作用
这里写自定义目录标题今天在写脚本的时候,偶然发现这么一个问题,引用变量带不带双引号,结果是不同,我没有系统的弄过这个语法,不知道其他人在这个方面基础怎么样,反正自己先记到这里。root@fetmx6ull-s:~/6# cat vari_u.sh #!/bin/bash list="one two three" #注意这里空格分别是1个和2个for a in $list do echo "$a" echo $adonefor a in "$list"do echo "$a"原创 2022-02-15 05:15:00 · 628 阅读 · 0 评论 -
Xshell中鼠标选中内容自动换行ctrl+c解决办法
之前一直使用xshell来调试嵌入式终端,觉得蛮好用的,在昨天,突然发现,莫名的就出现ctrl+c的命令,经分析,当使用鼠标选中内容后就自动出现,仔细思考这一两天的过程,并没有得到好的信息,查找网上信息,说有可能是其他软件引起的,就联想到了我最近刚安装的翻译软件“百度翻译”,果然,将百度翻译的软件退出后,xshell的功能就正常了。...原创 2021-08-24 09:02:35 · 1719 阅读 · 3 评论 -
嵌入式系统之温限使用
出于保护的目的,嵌入式系统会实时采集cpu的温度,对本身进行保护,同时我们也可以查看设定的温限的数值,举例(我使用的是OKMX6UL_S2).1.查看当前cpu温度;root@fetmx6ull-s:~# cat /sys/class/thermal/thermal_zone0/temp438202.查看当前温限;cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp95000cat /sys/devices原创 2022-01-02 00:15:00 · 895 阅读 · 0 评论 -
awk对文件的重复内容行操作
原创 2022-02-16 05:30:00 · 593 阅读 · 0 评论 -
弄清指针-如何深入了解指针
弄懂这些指针基础知识,再遇C指针咱就不慌了 一、前言 二、变量与指针的本质 三、指针的几个相关概念 四、指向不同数据类型的指针 五、总结 一、前言如果问C语言中最重要、威力最大的概念是什么,答案必将是指针!威力大,意味着使用方便、高效,同时也意味着语法复杂、容易出错。指针用的好,可以极大的提高代码执行效率、节约系统资源;如果用的不好,程序中将会充满陷阱、漏洞。这篇文章,我们就来聊聊指针。从最底层的内存存储空间开始,一直到应用层的各种指针使用技巧,循序转载 2021-01-30 09:43:24 · 181 阅读 · 1 评论 -
将linux的debug串口用于console和应用串口复用的方法
我们在研发一个硬件设备的时候,经常会出现应用矛盾的情况,如下面的场景:在linux的嵌入式系统中,为了在设备出现故障的时候,可以更好的监听设备的运行状态,需要设置一个串口为console口,用于输出运行信息,但是这样设备启动后,这个debug口不可以用作应用串口来使用了,会出现资源的浪费,那么能不能让这2个功能复用呢?比如说,启动的时候按下某个按键启动console ,如果不按任何键,那么启动后就作为普通串口使用能不能实现呢?ok,需求弄清楚了,下面是实现方法,注意不同的linux系统或者设备在小的方原创 2021-05-19 09:06:54 · 1440 阅读 · 0 评论 -
shell中的数值判断
我经常记不住数值判断的简写是如何写的,干脆写到这里。以后好查询。EQ 就是 EQUAL等于NQ 就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于 LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL 大于等于 LE 就是 LESS THAN OR EQUAL 小于等于...原创 2022-01-16 21:30:00 · 551 阅读 · 0 评论 -
虚拟机vmware中将文件拷贝到电脑中
在使用vmware中我们会经常在电脑和虚拟机中拷贝文件,当然我们可以使用vmware的共享文件夹功能,我今天说的不是这个。使用vmwaretools。操作步骤如下:在vmware菜单找到vmware –安装vmware tools ,会下载一个wmware tools的光盘,将压缩包拷贝到一个指定的目录下,否则由于光盘只读属性会禁止解压缩;使用sodo tar xvf *** 解压缩后,执行sudo ./vmware-install.pl 安装 yes或者默认选择即可;这样我们就可以实...原创 2022-01-10 01:00:00 · 7761 阅读 · 0 评论 -
嵌入式系统老化测试USB功能
1、使用手动插入usb,检测是否能检测到usb内容的方法;这个方法就是需要人为操作,比较笨;2、使用脚本读写完成 一般模式下,插入优盘后会增加一个分区,如下:root@forlinx:~# df -hFilesystem Size Used Avail Use% Mounted on/dev/root 6.0G 3.8G 2.2G 64% /devtmpfs 825M 0 825M 0% /devtmpfs ...原创 2022-03-22 00:45:00 · 498 阅读 · 0 评论 -
嵌入式系统之自定义数组实现
在实际的应用中有这样的一个需求,要求在不同的平台上实现通用的功能,需要检测平台的名称,实际的测试中发现有的老期的平台只能使用sh,而不用使用bash,而正好我的这个平台在sh下不能使用数组的功能。实验脚本如这样:# 平台数组platforms=(fetmx6ull-s imx6ull imx6ul ok335x 6Quad imx6q i.MX6 5718 6818 4418 A40i 1028 ls1043ardb ls1046ardb ls1012ardb imx8mq O...原创 2022-05-20 10:55:20 · 344 阅读 · 0 评论 -
嵌入式学习笔记之一:嵌入式linux中混合编译入门
gcc,linux混合编译,Makefile原创 2021-12-04 08:30:00 · 573 阅读 · 0 评论 -
嵌入式学习笔记-记录系统启动次数
在实际应用的过程中,我偶尔会用到计算开发板的启动次数,最笨的方法就是查看log,取数一下启动次数(当然,我不会笨到启动一次记录一次的,嘿嘿)。感觉这样太麻烦了,现在都啥时代了,还这样做。准备工作,首先要找到你系统启动后自动运行的脚本,我的板子是/autorun.sh ,这样做的原因是,在你没看到或者不小心启动了或者复位了也能监测到,你如果要求手动运行监测脚本,那么这种歌情况就不能记录了。让后将下面的脚本拷贝到这个自启动脚本。后来就写了这个脚本脚本1:root@fetmx6ull-s:/root原创 2021-12-24 06:15:00 · 670 阅读 · 0 评论 -
嵌入式系统笔记之自动登录
1.首先要搞明白你的系统是如何运行的 如我的板子是6ull-S板,它的启动过程是这样,启动后会加载 /etc/inittab文件,inittab文件是init进程的配置文件,init是linux的0号进程,在该进程中会决定系统启动后需要做什么,怎么做等等。文件如下:cat /etc/inittab 看第10行,就是mxc0:12345:respawn:/bin/start_getty 112500 ttymxc0respawn:这个字段是不管何时终止重新进入某个进程...原创 2021-12-25 09:00:00 · 839 阅读 · 0 评论 -
嵌入式学习笔记之二(静态链接与动态链接)
要了解静态链接与动态链接,首先要了解什么是静态链接和动态链接,这一部分这里不做讲解,可以去度娘查找。1.静态链接静态链接通过静态库进行链接,生成的目标程序中包含运行需要的所有库,可以直接运行,不过就是文件比较大。静态库是汇编产生的.o 文件的集合,一般以.a 文件形式出现。gcc 在使用静态链接的时候需要加上-static 参数。2。动态链接动态链接使用动态链接库进行链接,生成的程序在执行的时候需要加载所需要的动态库才能运行,动态链接程序轻便,但必须依赖动态库。Linu...原创 2021-12-06 05:00:00 · 821 阅读 · 0 评论 -
shell 根据关键字计算最大时间和内容的小例子
需要计算的文件如下:cat totalTotal elapsen time 29 seconds!32346434423234234234234234Total elapsen time 2 minutes 29 seconds!1212123121232983123681234512323123Total elapsen time 1 seconds!97847875639363540846733837636Total elapsen time 99 second原创 2022-01-18 14:45:00 · 187 阅读 · 0 评论 -
shell任务的前后台转换
你在使用脚本的时候有没有碰到这个现象1.输入脚本的时候没有带 &,让脚本在前台执行,然后不小心按到了ctrl+c,中断了后悔着呢?2.输入脚本的以后没有带&,结果过一会又想让他后台运行,你咋操作??难道是ctrl+c,然后从新执行一遍。3.输入脚本的时候带了&,发现脚本有些错误,但是脚本中执行了好几个脚本,要手忙脚乱的kill掉,然后从新执行吗?我估计玩脚本的人,上面的情况或多或少的都碰到过。那么有什么什么好的办法吗?答案是有的。莫急,慢慢看下去,要有耐心,嘿嘿。原创 2022-01-17 19:00:00 · 1268 阅读 · 0 评论 -
嵌入式系统-开关机测试笔记
嵌入式记录启动次数;稳压源控制软件原创 2022-10-31 11:24:08 · 601 阅读 · 0 评论 -
指针学习笔记
指针笔记原创 2022-10-24 08:25:38 · 333 阅读 · 0 评论 -
嵌入式系统232串口测试笔记
嵌入式系统实现232串口测试原创 2022-09-19 04:30:00 · 342 阅读 · 0 评论 -
嵌入式系统多线程学习笔记
多线程原创 2022-09-12 03:30:00 · 530 阅读 · 0 评论 -
嵌入式系统usb测试笔记
嵌入式系统usb原创 2022-08-15 14:45:00 · 862 阅读 · 2 评论 -
嵌入式系统编程实现485串口收发数据
嵌入式系统C编程,485半双工通讯原创 2022-08-08 04:00:00 · 2261 阅读 · 0 评论 -
我见过最形象最通俗的C语言指针讲解
C语言指针通俗讲解转载 2022-07-13 10:03:12 · 262 阅读 · 0 评论 -
嵌入式编程-谈谈参数获得方法getopt
getopt getopt_long原创 2022-07-11 12:30:00 · 274 阅读 · 0 评论 -
嵌入式编程实现记录开发板启动次数
编程实现记录启动次数原创 2022-07-05 02:45:00 · 215 阅读 · 0 评论 -
开辟一个嵌入式c编程的专栏
新开专栏原创 2022-06-30 15:17:35 · 129 阅读 · 0 评论 -
编程实现实时采集嵌入式开发板温度
编程实现嵌入式开发板实时采集温度原创 2022-06-27 10:40:44 · 639 阅读 · 0 评论