1.在C语言中调用C++函数
在一个工程中既有.c问价又有.cpp文件,在C中要调用C++接口:
在要调用的函数前加 extern "C",如下:
extern "C" void tcp_server(void) { struct sockaddr_in serverAddr, clientAddr; .... printf ("TCP Server end.\n"); } |
这样在另一个.c文件中就可以直接调用该C++函数了。
2.波特率的概念
波特率说白了就是每一秒,能传输多少位数据,对于两相调制的信号,波特率=比特率,串口属于两相调制,波特率就是一秒传输多少bit,一个字节8位就是8个bit。
常用的9600和115200就是指串口每一秒可以传输115200个bit,换算成速率,不计算校验位,只算起始位停止位和数据:
波特率115200 = 115200 (位/秒) = 11520 (字节/秒)
再除以 1024,就是每秒 KB 数:
波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)
3.TTL电平
这个是刚上大学就会教的东西,工作了做了软件与硬件沟通的时候总是提到TTL,虽然知道5V是1,0V是0,这种模糊不完全对的概念,还是会不确定。
TTL电平:规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。
3.3V和5V的TTL逻辑是这样的:
5V TTL 和3.3V TTL 指的是他们的工作电源电压,即Vcc或Vdd。 至于“逻辑电平相同”应该是指能够使TTL门电路翻转的输入电平对于这两种供电的TTL都是相同的。
即无论是5V供电的TTL还是3.3V供电的TTL,其输入低电平都必须在0.8V以下,输入高电平都必须在2.0V以上。
4.fpga的约束文件概念
做ZYNQ项目的时候,板子上一个看门狗用的EMIO去喂的,喂狗本身很简单,那么我想知道是哪个EMIO。
在FPGA这一端,手上暂时没有客户的逻辑说明或者源文件,我不知道逻辑这一端用了多少个EMIO。哪个是分配给看门狗的。于是我用了一个最笨的方法,一个个试了一下,试出来了,开始调试其他模块。
后来客户将约束关系发给我了,就我目前的理解,约束文件是fpga这一端相互或与arm之间的资源对应关系说明。比如我的EMIO哪个给看门狗了,我的时钟信息是什么,我的port是哪一个对应的axi总线,等等。