- 博客(50)
- 资源 (9)
- 收藏
- 关注
原创 关于STM32H743 recv()数据错误的问题分析
问题描述中位机使用TCP方式接收数据时可能出现数据错误,出错概率极高,大约接收300字节内必出。错误如下:最终结论中位机使用ST厂商自带的HAL库,该源代码在关闭网络接收的DCache(数据缓存)功能时有bug,可能导致部分区域的DCache未被关闭,从而导致TCP接收时可能从不正确的数据来源区拷贝数据,从而出错。软件环境HAL库版本号: STM32H7xx HAL V1.9.0STM32CubeMX版本: 6.1.0中位机MCU: STM32H743LWIP版本:.
2021-01-25 11:14:09
1844
4
原创 CRC校验和LCRC校验
/* CRC 高位字节值表 */const rt_uint8_t CRCTABLEHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81
2017-12-18 10:53:42
1754
原创 Delphi压缩access数据库
function CompactMDB(const DBFile, Pwd: string): boolean;var TempDBFile: string; ConStr: string; JE: OleVariant;begin // Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=..\Data\alarm
2017-11-01 16:22:01
639
原创 Delphi读写注册表
procedure EnumComPorts(Ports: TStrings);var KeyHandle: HKEY; ErrCode, Index: Integer; ValueName, Data: string; ValueLen, DataLen, ValueType: DWORD; TmpPorts: TStringList;begin ErrCode :=
2017-10-12 10:54:00
1180
原创 Delphi读写ini文件示例
var iniFile: TiniFile; index: integer; price: double;begin iniFile := TiniFile.Create('.\config.ini'); //ini文件与exe同目录 index := iniFile.ReadInteger('配置', '编号', 0); price := iniFile.Read
2017-10-11 10:48:16
409
转载 程序员和项目经理之间的恩怨情仇
偶有所感,偶有所读,天大地大,两个互相看不上眼的人何必挤在一艘小船上。记录之。http://www.cnn6.net/html/itok/2017731/202425.html?ref=myread程序员和产品经理之间的恩怨情仇时间:2017年7月31日来源:互联网 作者:小恩 我要评论一个年轻的程序员和一个项目经理登上了一列在山里行驶的火车,他们发现列车上
2017-08-01 09:49:31
4707
转载 好与坏的程序员:如何客观评价程序员的水平?
开源中国上读到一篇文章,深以为然,引用保存之。https://www.oschina.net/news/87295/good-and-bad-programmer好与坏的程序员:如何客观评价程序员的水平? 局长 发布于2017年08月01日 收藏 16 评论 8 1有感于知乎上的一篇关于程序员的讨论。让我突然之间心有戚戚然的感觉
2017-08-01 09:39:41
659
原创 excel将一行或一列转换为10个的方阵
=INDEX(Sheet1!$B$3:Sheet1!$B$1343,(ROW()-3)*20+COLUMN()-1)
2017-07-25 19:45:12
1382
原创 封装自己的printf
#include int my_printf(const char* format, ...){ int result; va_list vp; va_start(vp, format); result = vprintf(format, vp); va_end(vp); return result;}
2017-07-15 11:47:35
1217
原创 生成随机数rand()
#include#include#include#define random(x) (rand()%x)void main(){ srand((int)time(0)); for(int x=0;x<10;x++) printf("%d/n",random(100));}
2017-03-31 14:13:46
568
原创 bmp格式解析
bmp.c#include #include "bmp.h"void savebmp(unsigned char * pdata, char * bmp_file, int width, int height ){ // Define BMP Size const int size = height * width * 3; FILE * output; //
2017-02-21 14:03:43
539
原创 Android开发与Linux开发的区别与联系(入门)
1、Android的目录路径等不明,Linux代码如何移植进Android相应目录不知;2、目前Linux内核代码放置在\\192.168.1.190\share\android\kernel_imx;3、安卓下编译Linux内核的方法(PC机使用ssh调试):#! /bin/bashdate > build_boot.logcd kernel_imx/source ./quic
2017-02-10 11:37:11
3373
1
原创 Linux网卡能接收不能发送bug eth0 tx packets:0
今天调试新板卡,遇到一个很奇怪的现象,eth0能收不能发,使用ifconfig -a查看,发现tx packets一直为0。经过排查网线故障、交换机故障一系列之后,我用板卡自ping,发现也不通,故怀疑是网卡驱动故障。经检查,网卡使用了新的phy芯片,设备树配置的确有问题,更改后正常。
2017-01-17 15:33:18
4728
2
转载 TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
http://www.cnblogs.com/azraelly/archive/2012/12/25/2832393.html在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。 它们的含义是:SYN表示建立连接,FIN表示关闭连接,A
2016-12-30 16:18:28
326
原创 Linux uboot下新增phy的生效流程解析(Zynq平台)
driver/net/phy/phy.c:phy_init()里通过宏CONFIG_PHY_MARVELL来初始化具体phy芯片,宏的定义在xxx_config.h中;driver/net/phy/marvell.c:phy_marvell_init()中phy_register(&M88E1518_driver)来注册具体型号的phy芯片;phy_register()的定义在phy.c,
2016-12-29 10:51:41
7604
原创 Zynq启动CPU1的步骤(寄存器A9_CPU_RST_CTRLS)
最近要用到Zynq的AMP,看了xapp1079,关于CPU0启动CPU1的介绍还是比较细腻的,摘录之。SDK中的代码:print("CPU0: writing startaddress for cpu1\n\r"); { /* * Reset and start CPU1 * - Application for cpu1 exists at
2016-12-17 11:37:21
4985
1
转载 assert和de-assert的理解
在很多手册中会经常用到assert和de-assert,它不单单是拉高或拉低,而是使能与禁能的意思,解释如下:assert: Drive a signal to its active voltage level, either high or low.deassert: Drive a signal to its inactive voltage level, either high
2016-12-17 11:05:23
6243
原创 设备树中address-cells和size-cells的含义
#address-cells = ; 基地址、片选号等绝对起始地址所占字长(32位)#size-cells = ; 长度所占字长(32位)譬如cpus { #address-cells = ; #size-cells = ; cpu@0 { compatible = "arm,cortex-a9";
2016-12-15 15:07:20
22944
7
原创 uboot下make xxx_config的由来
uboot里需要执行 make CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_me_config但我并没有找到zynq_me_config这个文件,百思不解。内核文件是包含在arch/arm/configs里,不过uboot似乎没有类似的路径。OK,已解决。xxx_config并不是一个文件,首先1、在\include\con
2016-12-13 15:50:36
892
原创 调试信息分级打印DIY
#define DEBUG_GENERAL 0x00000001 /* general debug messages */#define DEBUG_INFO 0x00000002 /* More debug information */#if defined (FSBL_DEBUG_INFO)#define fsbl_dbg_current_types ((DEBUG_IN
2016-12-06 17:45:07
727
原创 C语言写excel文件(csv格式)
csv:简化版excel,在PC机上等同于excel,可进行各种excel计算、画图。#define EACH_FILE_MAX_BYTE 52428800//-------------------------------------------------------------------// 功能:存放数据为csv格式// 输入: filename 写入U盘的文件名称,如ai.
2016-12-06 15:25:46
12144
原创 Qt Creator看不到源码
使用Qt Creator打开工程后,一片空白,看不到任何源码或界面文件,不过可以编译。1、点击“控件”->“显示边框”;2、点击“类型层次”右边的向下箭头,选择“项目”即可。
2016-11-24 11:17:56
3878
原创 Linux开发--不编写驱动前提下应用层如何直接访问实地址
实地址可以通过mmap()映射成虚地址,所以可以不写驱动,应用层直接映射并读写相应地址。Xilinx又将mmap()封装了一个XilIOCreate(),更加方便。所以经常说IO和memory是一回事。原来如此。
2016-11-16 10:10:15
992
原创 xil_xio.c
u8 Xil_In8(INTPTR Addr){return *(volatile u8 *) Addr;}/*****************************************************************************//**** Performs an input operation for a 16-bit me
2016-11-14 14:15:56
1170
翻译 Zynq的PL-PS中断在设备树中的描述
http://blog.youkuaiyun.com/klaus_wei/article/details/42915545dma-channel@40400000 {compatible = "xlnx,axi-dma-mm2s-channel";interrupts = ;xlnx,datawidth = ;xlnx,device-id = ;};interrup
2016-11-11 16:31:06
4839
原创 Linux内核操作GPIO
#include static int xxx_probe(struct platform_device *ofdev){ int ret; //Zynq MIO15 ret = gpio_request(15, "gpio15"); if(ret < 0) return -1; ret = gpio_direction_output(15, 0); if(ret
2016-10-17 17:11:12
676
1
原创 Linux下使用代码调用命令行
//核心函数:popen#include #include #include "Hzhy_Rtc.h"static char cmd_get_tm[] = "date \"+%Y-%m-%d %H:%M:%S\""; //应答格式:2013-02-19 13:14:19static char cmd_set_tm[8] = "date -s "; //date -s
2016-10-15 11:58:50
808
原创 Linux 4.6 phy驱动调试
最新版本的Linux(4.6)中对phy驱动的调试略有不同,记录下。1、设备树、congfig等与以往相同,不赘述;2、内核在注册phy时使用of_mdiobus_register(),其中增加了一个of_mdiobus_child_is_phy()的判断机制,其意思是判断要增加的这个节点是phy还是设备。该函数内有个白名单数组whitelist_phys[],开发人员需将要增加的phy名
2016-08-16 18:38:48
3424
原创 PHY驱动心得
真是读书十年不如听君一言啊!Linux下的PHY驱动,一直不得入其门,晕的不要不要的。结果听了公司一位小美女老师的讲解,颇有点打通经脉的感觉!要摸索的细节还有很多,但模型的路子是通了。开心~下篇再具体整理吧。。。
2016-07-28 11:06:27
3124
原创 Linux CAN驱动及测试总结
平台:Zynq-7010 内核:Linux3.14.52Xilinx官网CAN驱动相关:http://www.wiki.xilinx.com/Linux+CAN+driver1、内核中开启CAN总线: 1)进入内核源码顶层目录 cd /opt/hzzd/linux/linux-xlnx-xilinx-v2014.2.01/ 2)make ARC
2016-07-28 09:15:28
6938
原创 Linux errno.h和delay.h
两个小知识点总结,基于Linux3.14.52:1、位于linux-3.14.52\include\uapi\asm-generic#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No suc
2016-06-06 14:52:38
1676
原创 Linux 编码转换 (iconv失败的解决方法)
一开始,调用iconv_open()会返回-1,使用printf("errno=%d\n",errno)查看,返回22,说是invalid argument参数非法。试了下,确定不是UTF-8或utf-8的大小写问题。然后按博客http://blog.youkuaiyun.com/love_life2011/article/details/7086910#comments所述,更新iconv函数簇为较新版
2016-06-02 17:22:43
25019
6
转载 linux下错误的捕获:errno和strerror的使用
原文地址:https://www.douban.com/note/165931644/经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。 在程序代码中包含 #include ,然后每次程序调用
2016-05-12 11:23:44
767
1
原创 Notepad++ 移动到另一视图之上下/左右结构
我使用的是Notepad++ v6.9.1版本。Notepad++有个“移动到另一视图”功能,当需要比较两个文件时非常方便。两个视图的分布可以是左右式,也可以是上下,看各人习惯。今天我终于找到了切换上下或左右的方法,记录如下:如下图,必须在红框标注的那个黑色小箭头上右击,将出现“Rotate to right”/"Rotate to left"的选项。这两个选项就是调整上下还是左右显示的。
2016-05-12 10:44:51
9951
3
原创 Linux头文件路径之困惑
之前做的一直是IDE,对makefile、命令行之类接触不多。很是困惑Linux中的头文件。譬如#include ,譬如#include ,绝对路径是什么。。。搜索了下具体的文件,发现往往有多份,路径也千奇百怪。譬如 内核/include/linux/...,再譬如 内核/include/uapi/linux/...,具体是怎么个区别?网上有篇帖子讲的挺好,http://blog.cs
2016-05-10 15:37:27
2554
原创 疑问:Linux中同一个头文件,可否既被驱动代码调用、又被应用代码调用?
苦恼。一是没搞明白诸如#include ,其绝对路径是什么(是在"内核/include/"下吗);二是不清楚.h文件也属于内核空间或用户空间吗,是二者只能选一吗;惊呆了。。。
2016-05-06 17:59:37
341
原创 Linux设备号
1、设备号分主设备号和次设备号;2、应用程序通过设备文件的主设备号找到对应的设备驱动;3、如果多个设备的主设备号相同,那代表这些设备共享同一个设备驱动。设备驱动将通过次设备号区分具体操作的是哪个设备;4、相关的一些函数:设备号的数据类型:dev_t(unsigned int)主设备号=MAJOR(设备号)次设备号=MINOR(设备号)设备号=MKDEV(主设备号
2016-05-05 18:18:57
415
MAPLAB C18 C编译器入门
2010-01-29
嵌入式系统智能手机(PDA)设计方案
2008-10-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人