bash 脚本的执行方式 在 Bash 中,执行脚本可以通过多种方式,其中最常见的两种是使用bash直接运行脚本和使用source命令(或,即点命令)来执行。这两种方式有着根本的区别,它们对脚本的影响和脚本对环境的影响也不同。
不要从界面启动IDE来编写代码 ide会继承环境变量,如果从界面启动,ide只会继承系统默认的环境,而从终端会话启动的ide会继承这个终端的环境,二者天差地别,我就是因为这个环境变量的差异死活编译失败,而且命名在终端里可以编译成功!最后从终端启动ide才成果,坑死我了。
能否向右位移?且偏移大小是-1? 即__asm__("shrl %1, %0\t" : "+r"(a) : "c"((-s)));这句的右移指令,mmpeg似乎想进行一个负数的偏移,(我不知道他怎么想的,啥情况会负数作偏移?),所以这个内联汇编一定要传入负数s,报错的原因在于gcc拒绝接收负数的立即数作为操作数,把"ic"改为"i",去掉立即数的约束即可成功编译了,参考。cl就是-1值,eax即3,向右偏移-1位,就是偏移0xFF, 变成了0,看来硬件不会作正负判断。那么问题解决了,新的问题是,如果真的把负数传入,那么会发生什么事情?
SDI-12协议与STM32 进行uart通信 其中DIR_OUT_SDI是一个IO引脚,控制UART_TX_SDI是否使能,U10是三态门IC,即拉低DIR_OUT_SDI使能stm32输出,拉高DIR_OUT_SDI失能输出,串口配置8位数据位,偶校验,1位停止位,1200波特率。示波器测试得到传感器的应答信号如下:第一个是唤醒信号,拉高电平13毫秒,之后保持20毫秒低电平,第二个数据帧是激活信号,即ascii码: "0!",第三个是传感器的应答信号:"0\r"
Nor flash 页写地址与数据大小的限制 如果页写指令的地址不是256的整数倍,并且写入的数据量超过了当前地址所在页的边界,则超过的那些数据会重新写入当前页的首地址(即256的整数倍地址),所以,在进行页写的时候,要注意这个限制,跨页写数据时注意分多个页写命令。厂商提供的flash手册如下。
STM32 SPI对存储芯片发送写是能命令后一直忙等待 我采用CUBE配置的SPI外设,对cs引脚选择了硬件输出,这种方式对读取命令没有影响,但是对写命令有,当我发送写是能命令后,读取状态寄存器的值一直都是忙,我猜测这可能是硬件控制cs引脚后,对于HAL_SPI_Transmit等命令,内部没有实现CS的拉高和拉低操作,所以才会出现这种情况,证据就是我将CS设置为软件输出,自己控制后,读取就正常了。
使用GDB,进行在Pyhon 级别的调试(python使用ctype引用动态库文件) 我在使用python运行一个程序,它引用ctypes调用了动态库,现在需要进行调试,那么可以使用GDB调试python程序。gdb --args python main.py进入gdb就可以设置断点了b func_namerunstackoverflow上有这个问题,出自How to debug python script in C level using GDB. Give me a simple example for this - Stack Overflow...
python 3.6中的字符串转c_type_p的报错问题 官方在这个版本中将 python的字符串类型对应到了字节类型,所以要传字符串时要把字符串转成字节类型,例如:test.argtype = [c_char_p]......test("param")这样会报错,需要修改成test(b"param")
线性最小二乘法 c语言实现 公式用的出自https://blog.csdn.net/hezhefly/article/details/79517684?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComm
算法性能优化的注意点 memset是大家常用的函数,而且一般的编程书籍都会谆谆告诫大家:申请内存后要初始化,防止使用未经初始化的内存导致不可预知的结果,所以我们一般都会按照如下方式编写代码:char* buffer = (char*)malloc(1024);memset(buffer, 0x00, 1024);代码看起来很标准,也很美观,但这里却隐藏着一个陷进:memset的性能并不高!如果你的内存在1K左右,可能还察觉不到,但如果是1M,那性能影响就很明显了,我们来看实测数据(Redhat EL5 Inte.
stm32焊接与调式心得以及求助 对于我这种焊接和软件调试的初学者而言,调通自己焊接的stm板子会遇到一些不易察觉的问题,现在总结一下解决方法。问题一:如果说keil中debug选项里显示无法连接到mcu,你也许有几个检查的思路1 : 如果用sw调式,而且是用stm32Cube生成的初始化文件,那么在stm32Cube配置时要在debug选项中选择SW配置模式,否则仿真器就无法检测到mcu了。2: 你需要在根据pcb图来检查焊接是否出现了虚焊和假焊的错误,焊接不出现虚焊和假焊是焊接的基本功,为了保证焊接的...
个人笔记,关于stm32的hal库的学习笔记 我上传到了gitee思维导图文件用mindmaster打开链接:git@gitee.com:gouweicaosui/stm32-learning-notes.git
stm32开发层次介绍(转载) 自STM32标准库出道以来,备受广大工程师和公司的喜爱,但是,从2013年开始,ST逐渐停止了对标准外设库的更新和维护。目前,ST全力推崇HAL库,STM32Cube就是与HAL库配合使用图形化编程官方IDE。7.1 STM32库简介到目前为止,ST有标准外设库(SPL 库)、HAL 库、LL 库 三种。前两者都是常用的库,后面的 LL 库是 ST 最近才添加,随 HAL 源码包一起提供,目前支持的芯片也偏少。各库如下所示:图1 标准库、HAL 库、LL 库对比其中,SPL 库 和 HA
嵌入式常识(KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251) µvision 中µ读 “缪”轻声。我们要区别的概念:KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251从接触MCS-51单片机开始,我们就知道有一个叫KEIL的软件。在开发单片机时,使用的是C语言或者汇编语言,我们知道,这两种语言都不能直接烧写到单片机里面,执不执行暂且不说,光是代码的体积,就足以撑破整个单片机。所以,我们需要一个软件,把C语言或者汇编语言编译生成单片机可执行的二进制...
面试笔记(纯粹个人向,用于应对问到项目中解决了那些问题的笔记) 项目:伺服电机初始化和伺服电机调用接口的相关工程任务概括:在通信主机上编写应用程序 利用ethercat驱动进行主机对从机(伺服电机)的数据通信首先需要解释一下ethercat数据通信中的两个重要的概念:pdo和sdo,就我所认识的,sdo用于在通信初始化前对目标从机的某些寄存器进行配置,它是pdo开始收发数据之前执行的,只配置一次。pdo则是过程数据,它在通信建立时不间断地以同步周期为间隔进行数据的交换,具体如何交换则不需要应用层的程序关心,这些都在驱动层完成了。在主机方面:...
关于linux内核结构的笔记整理 我在码云上传了一份自己关于linux内核的用思维导图整理的笔记,刚开始用思维导图,这个工具一方面能直观地把握某一概念的结构,另一方面对于概念的修改和整合,删除,合并等操作十分方便,感觉自己打开了新世界。链接如下:https://gitee.com/gouweicaosui/linux-structure-mind-map...