C语言数据获取与类型转换问题 物体坐标X轴原始数据为int型,存在负数,遥控指令中的数是加上了2^31,并按照unsigned int类型存储于遥控指令中,因此获取到数据后,还需要减去2^31作为最终值。如下图所示,32位的float型的内存分布如图所示,如果按照这种分区去“解释”4字节的unsigned int类型的数据,是得不到正确的数值的。得到的output变量显示为Nan,也就是没有获取到正确的数值,在这一步错误的话,后续减去2^31得到的结果也不会是正确值。首先在电脑上,验证了函数的正确性。本文使用的获取浮点数的函数为。
【DSP】无法在线仿真无法进入main()函数 接手前人的DSP代码,硬件平台是DSP C6701,软件IDE是CCS 12.3.0。仿真器版本是XDS 560V2。 在进行在线仿真时,经常出现“伪在线”的情况。简单来说,正常的在线过程:在CCS软件中点击debug按钮,程序加载进硬件后,会进入暂停状态,此时点击继续运行按钮,程序开始运行,接收遥控指令等功能正常。
《Linux/UNIX系统编程手册》勘误整理 【1】官方英文勘误:https://man7.org/tlpi/errata/index.html。原文: 线程 1 将 glob 值赋给局部变量 loc。原文:如 read()可能 hiu 被一个向管道写入数据的信号处理器中断。原文:文件描述符和打开着的文件描述符之间的关系类似。纠正:文件描述符和打开着的文件之间的关系类似。原文:图1-2所示为这种文件层级结构的示例。纠正:无编号图1-2,应为图2-1。原文:那么临时屏闭线程的取消性状态。(1)P21页 2.4章节。(2)P38页 3.4章节。
C语言有关文件的操作 函数,无法读取到文件在该偏移量的内容,读取到的内容是0xFF,这是合理的,因为"ab"模式是写模式,并没有读取文件内容的权限,如果使用"ab+"模式打开文件,就可以读取文件内容了。这句话书里写的比较混乱,我第一次读产生了歧义,首先,书中的文件结尾和文件末尾是两个不同的概念,我的理解是,文件末尾是文件的最后一个字节,而文件结尾是一个。再测试一下写操作,可以发现,写入的0xAA以及0xBB、0xCC被追加到了文件的末尾,而不是offset处,并且此时。函数移动的文件指针无关,数据只能追加到文件的末尾。
局部变量的初始化问题 不过初始化是个好习惯啊,如果不是极端在意性能(初始化会有写内存的操作),建议都尽量初始化。放到main函数外,作为全局变量的话则不会有这个问题,因为全局变量会自动初始化为0。今天在学习《C primer plus》的第17章过程中,出现了一个段错误的问题。没有初始化为NULL的原因,这导致第一次创建链表节点时不会进入。没有初始化的野指针会导致难以预料的结果。
【汇编语言】学习笔记-第1章 第1章 基础知识1.1 - 1.10机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令。汇编语言的主体和核心是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令通过编译器“翻译”为机器指令。存储器:指令和数据在存储器中存放,即“内存”。微机的存储器容量的最小计量单位是字节。总线:在物理上是CPU与其他芯片连接的导线,在逻辑上分为3类:地址总线,控制总线和数据总线。总线宽度:物理上有N根线,则总线宽度为N。地址总线宽度决定CPU的寻址范围,为2^N。
【ZYNQ】PS端 SPI 使用EMIO实现 本文主要探讨使用EMIO实现PS端的SPI接口,目前得出的结论是:可以实现,但需要占用两个芯片管脚用于输出片选信号。首先在zynq的MIO Configuration配置中可以看到,如果SPI接口配置为MIO实现,则可以选择是否是多设备,但是如果配置为EMIO实现,则无法选择,SS[0],SS[1],SS[2]都强制勾选了。其次,在进行管脚分配时,哪怕不使用片选信号,SPI_0_ 0_ss1_o和SPI_0_ 0_ss2_o和必须分配管脚,否则Synthesis和Implement都
【ZYNQ】AXI Uartlite作为console 本文主要探讨AXI Uartlite作为console的可行性,目前的结果是不行。参考的一些链接:【1】https://support.xilinx.com/s/question/0D52E00006hpYFySAM/petalinux-issues-using-uartlite-serial-port-as-primary-stdinstdout?language=en_US【2】https://support.xilinx.com/s/question/0D52E00006hpmEhSA
s_gets()函数解析 在学习《C primer plus》时,有一个获取输入的函数s_gets()出现频率非常高,此处记录下对这个函数的理解,该函数首次出现于程序清单11.10。函数源代码:char *s_gets(char *st, int n) { char *ret_val; char *find; ret_val = fgets(st, n, stdin); if(ret_val) { find = strchr........