MDK

keil(MDK)错误记录

99封情书 提交于 2019-12-11 01:06:06
1、 a parameter list without types is only allowed in a function definition (没有类型的参数列表只允许在函数定义中使用) 2、 Error: L6200E: Symbol HAL_UART_Transmit_User multiply defined (by esp8266.o and stm32f1xx_hal_uart.o) 函数重复定义了,在工程里再找找,可能在其他地方重复定义了此函数。 来源: https://www.cnblogs.com/QQ2962269558/p/12018722.html

最简单的方式开发一个高并发服务器

可紊 提交于 2019-12-07 12:01:18
1.包含头文件 #include "frame/netserver/NetServer.h" #include "frame/netserver/NetHost.h" 2.从NetServer派生自己的服务器类GameServer 3.在构造函数中设置要监听的端口,实现OnMsg回调方法 GameServer.h /** * 数据到达,回调方法 * * 派生类实现具体断开连接业务处理 * */ void OnMsg(mdk::NetHost* pClient); GameServer.cpp TestServer::TestServer() { Listen(8888); } void GameServer::OnMsg(mdk::NetHost* pClient) { unsigned char c[256]; unsigned short len = 100; /* 读取数据长度,长度不足直接返回,等待下次数据到达时再读取 */ if ( !pClient->Recv( c, len, false ) ) return; pClient->Send( c, len );//收到消息原样回复 } 4.使用GameServer类 int main() { GameServer ser; ser.Start(); ser.WaitStop(); return 0; } 5

NetHost指针访问安全专集(基于mdk1.10)

百般思念 提交于 2019-12-07 12:01:06
NetHost是服务器引擎的2大接口类之一,而且是由引擎维护其对象的创建与释放, 用户使用不当可能造成访问野指针或者内存泄露。 为了让使用mdk的朋友,安全的使用NetHost指针,本文写提出一些安全的使用模型。 首先说明一下,如果担心NetHost使用不当,可以完全放弃NetHost,引擎的另外一大接口类NetServer已经提供了SendMsg()与CloseConnect()方法,用于安全的操作主机的连接,只要传递HostID进去(可以通过NetHost->ID()方法得到)即可,ID只是一个int值,不存在内存泄露与野指针问题。 接收数据,在OnMsg中使用参数的NetHost指针是绝对安全的,引擎已经做好控制。 开始NetHost的安全访问 NetHost表示一个连接上来的主机,该类主要就是2个作用send发消息close断开连接,另外提供方便的Group操作 为了避免方法野指针和内存泄露,主要要了解NetHost对象的生存周期 NetHost对象在连接建立时被创建 连接断开(不管是server断开,还是client断开)后被移动到关闭列表(代码中就是m_closedConnects里面), 后台有一个释放线程,会循环定时去检查这个列表中的指针,如果对象的访问计数为0,则释放掉对象 对象什么时是绝对安全的(不会被释放) 1.被作为参数传递给OnConnect OnMsg

NetHost::Recv方法使用专集(基于mdk1.10)

╄→尐↘猪︶ㄣ 提交于 2019-12-06 20:21:27
为什么将此方法特别弄一个专集,因为在通信软件领域中,数据接收一直是一个比较有复杂的事情,处理的好不好,直接影响到程序效率。 本文就是为了介绍NetHost::Recv配合mdk这套引擎,如何方便的解决了传统通信软件中在数据接收这一块上遇到的各种瓶颈 瓶颈1:等待数据的方式 循环sleep、阻塞recv、事件触发(例如select epoll) 他们的缺点 循环sleepcpu吃紧 阻塞recv占用业务线程 事件触发,不知道有多少可读数据,如果数据不完整,读出数据需要用户自己维护 NetHost的解决方案 NetHost有自己的接收缓冲,mdk引擎收到数据首先放入NetHost的接收缓冲,然后触发OnMsg。 因为底层已经在接收了,所以recv永不阻塞,数据不够直接返回,等下次数据到达时,OnMsg会再次被触发 瓶颈2:一个完整消息被分成多次到达 来1次收1次,记录上次接收状态,用户自己拼包 缺点 用户得自己维护已接收的数据,相当于一个接收缓冲,这个缓冲必须随着连接的建立与断开创建与删除,维护代价昂贵 NetHost的解决方案 NetHost::Recv比传统的recv方法增加一个bClearCache参数,告诉Recv接收到数据后,是否将数据从接收缓冲删除 bClearCache为true时,与传统recv方法效果一样,比如到达数据123456789 recv 2 byte

2019-2020-1 20175302 201752314 20175316 实验三 并发程序

夙愿已清 提交于 2019-12-05 12:04:54
2019-2020-1 20175302 201752314 20175316 实验三 并发程序 实验三 并发程序-1 实验内容 学习使用Linux命令wc(1); 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端; 客户端传一个文本文件给服务器; 服务器返加文本文件中的单词数。 设计实现 命令参数 -c :统计字节数 -l :统计行数 -m :统计字符数。这个标志不能与 -c 标志一起使用。 -w :统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串 -L :打印最长行的长度 -help :显示帮助信息 --version :显示版本信息 实现伪代码 int main() { fd = fopen()//打开文件; fscanf()//对文件的内容以字符串的形式进行读取 if..count++//设置条件,当满足字符串条件时计数; } 对于wc -w功能与我们统计单词个数相似,而其实现时:由' ','\n','\t','\r'作为分隔符 统计单词个数时,除上述分隔符,还加入了文本文件中常见的符号:'!','"','?','.',',','(',')',':',';','-'作为分隔符 实现wc -w #include <stdio.h> #include <stdlib.h> #include <unistd.h>

初识FPGA第一次亲密接触

寵の児 提交于 2019-12-05 03:48:06
1.1 FPGA技术背景 笔者也是在偶然的机缘下接触到FPGA的,当初只有感性的认识就是FPGA速度快,而笔者是一个初出茅庐的电子技术爱好者,觉得越快越好,就去学习FPGA了,学习了FPGA才知道FPGA真不简单。一晃8年多时间过去了,在摩尔定律下,FPGA也是从逻辑资源上不断刷新新的记录,笔者用过的FPGA从XILINX家族的spartan2e、spartan3e、spartan6到artix7、kintex7、zynq7000再到ultrascale、MPSOC。这些年,见证了XILINX公司的从FPGA领域和Altera平分天下,到目前一家独大,感概当初运气好,当初选择了XILINX的FPGA方案。但是国际形式风云变幻,从2018年开始的中美贸易战开始,美国政府逐步禁售FPGA芯片给华为、海康威视等国内FPGA使用的大客户,逐步也让笔者感到了作为一个FPGA技术爱好者和从业者的渺小,也认识到了作为半导体技术的明珠之一”FPGA”技术,国内的FPGA差距与国外差距巨大。 在目前的情况下,不管是硬件成熟度、软件成熟度、生态完善,国内FPGA厂家都是无法比拟的,在这种情况下我们仍然有必要学习国外先进FPGA技术。这也是对于就业和职业最好的选择。当然笔者也在准备推广国产化的FPGA技术方案,相信在不久的将来,也许是5-10年后

2019-2020-2-20175209 20175213 20175214-实验二固件程序设计

青春壹個敷衍的年華 提交于 2019-12-04 18:52:01
实验二 固件程序设计 本小组成员: 20175209 王梓鸿 20175213 吕正宏 20175214 林郅聪 实验二 固件程序设计-1-MDK 实验内容: 1.注意不经老师允许不准烧写自己修改的代码 2.三人一组 3.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 4.提交破解程序中产生LIC的截图 5.提交破解成功的截图 实验步骤: 找到exp2\软件资料\MDK4.74路径下的mdk474.exe文件,点击并安装。注意此过程中安装目标路径是自己创建的一个名为Keil 4的文件夹。 安装Ulink驱动。 在桌面上创建的快捷方式“Keil uVision4”上右键,选择“以管理员身份运行”。 按照实验指导书上的操作进行软件安装,然后运行 uVision4,点 File>>License Management-->复制 CID-->运行keil-MDK注册机(在“Z32开发指南\2.软件资料\keil-MDK 注册机”双击“keil mdk474注册机”),最后粘贴 CID 并选择 ARM。 将LIC复制并将其粘贴到keil4中的LIC输入框中,进行破解。 实验二 固件程序设计-2-LED 实验内容: 0

2019-2020-1 20175302 201752314 20175316 实验二 固件程序设计

为君一笑 提交于 2019-12-04 18:26:51
2019-2020-1 20175302 201752314 20175316 实验二 固件程序设计 实验二 固件程序设计-1-MDK 实验内容 0. 注意不经老师允许不准烧写自己修改的代码 1. 两人(个别三人)一组 2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 3. 提交破解程序中产生LIC的截图 4. 提交破解成功的截图 实验步骤 • 运行exp2/软件资料/MDK4.74/.exe安装MDK-ARM • 安装JLink • 破解MDK4.74:复制CID到keil-MDK注册机中,Target选择ARM,点击generate生成LIC • 将LIC复制到keil4中的LIC输入框,点击Add LIC,破解完成。 实验二 固件程序设计-2-LED 实验内容 0. 注意不经老师允许不准烧写自己修改的代码 1. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关

2019-2020-1 20175234 20175205 20175217 实验二 固件程序设计

人走茶凉 提交于 2019-12-04 18:14:58
2019-2020-1 20175234 20175205 20175217 实验二 固件程序设计 实验内容 1-MDK 实验要求 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 提交破解程序中产生LIC的截图 提交破解成功的截图 实验步骤 按照实验指导书上的操作进行软件安装 运行 uVision4,点 File>>License Management-->复制 CID 运行keil-MDK注册机(在“Z32开发指南\2.软件资料\keil-MDK 注册机”双击“keil mdk474注册机”) 粘贴 CID 并选择 ARM。 2-LED 实验要求 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图 实验报告中分析代码 实验步骤 首先先在 KEIL-MDK 中添加 Z32 SC-000 芯片库,操作过程为: 打开 keil

2019-2020-1 20175208 20175218 20175230 实验二 固件程序设计

不想你离开。 提交于 2019-12-04 15:55:24
2019-2020-1 20175208 20175218 20175230 实验二 固件程序设计 一、实验内容 1、固件程序设计-1-MDK 注意不经老师允许不准烧写自己修改的代码 三人一组 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 提交破解程序中产生LIC的截图 提交破解成功的截图 2、固件程序设计-2-LED 注意不经老师允许不准烧写自己修改的代码 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图 实验报告中分析代码 3、固件程序设计-3-UART 注意不经老师允许不准烧写自己修改的代码 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.0