PRELOADER

不念过去 不负现在 不畏将来

主页

12/4/2018 —— 

  • 一、前言

    关于堆栈的定义在此就不赘述,详细内容可以看这篇博客
    堆栈溢出会导致野指针,返回地址错误等问题,通常程序已经无法正常运行,进入 HardFault 异常中断。为了避免这种情况,一般会分配较大的空间用做栈,可是如果仅仅为了安全就分配大空间的栈势必导致内存浪费。本文介绍两种获取栈最大消耗的方法,以方便合理设置栈的大小。

     2018-10-25 展开全文

    一、前言

    汇编文件移植性比较差,不同的内核架构支持的指令集都不一样,就算是相同的内核,在不同的 IDE 下的写法也有可能不一样。同样的文件在 KEIL 下可以正常运行,在 IAR 下就无法编译通过,这就是因为 KEIL 和 IAR 对汇编文件的写法要求是不一样的。KEIL 以及 ADS 下的一些伪指令和写法,在 IAR 下是不支持或者不一样的。具体可以参考 《EWARM_ADSMigrationGuide.ENU.pdf》,下文只是我自己在移植过程中的一些修改记录。

     2018-10-19 展开全文

    在做 leetcode 的第 15 题3Sum 时发现,同样的代码在本地运行的结果是正确的,而在 leetcode 的服务器上结果却是错误的。而且检查了程序中,也并没有使用全局或者静态变量。

    这里写图片描述

    通过打印,仔细对比两种环境下的输出发现,原来是代码有一条语句指针指向了数组外边的第一个地址。语句的内容是比较当前地址的值是否和后一个地址的值相同, 由于后一个地址实际上已经发生了溢出,在当前地址为数组最后一个元素时,下一个地址就在数组外边了,这个地址的值是不确定的。在本地调试时,由于两个地址的值不同,所以程序结果正确,而在 leetcode 服务器上运行时,这两个值相同,因此程序最终的结果就错误了。

     2018-09-16 展开全文

    j-link v9

    主控: stm32f205RC

    现象

    • 1、给 M0 下载固件的过程中经常出错,提示找不到M0。需要反复尝试很多次才可以下载。
    • 2、在一次正常的拔线断电后,再也无法识别,灯也不亮了。

     2018-09-13 展开全文

    MPEG AUDIO 简介

    MP3 是 MPEG Layer3 音频压缩技术的简写,这种技术可在音质极少损伤的情况下获取更好的压缩性能。MP3文件可以被压缩成不同的速率,文件压缩的越小,音质损伤越大。标准的压缩比例为10:1,一段3分钟的音频数据压缩后只需4MB大小。

     2018-08-12 展开全文

    前导零计数

    计算一个 32位 数头部 0 的个数。例如 1 前面有 31 个0, 0 则前面有 32 个0。

     2018-08-02 展开全文

    fread 函数一直返回 0,检查过读取的数量不会超过文件大小,错误发生在打开文件时错误。

    错误代码如下:

    FILE *in_file, *out_file;
    unsigned int open_files(const char *in_file_name, const char *out_file_name)
    {
        if( in_file = fopen(in_file_name, "rb") == NULL)
    
            return 0;
    
        if( out_file = fopen(out_file_name, "wb") == NULL)
    
            return 0;
    
        return 1;
    }
    

     2018-07-25 展开全文

    main

    最近在玩一款编程类的游戏,叫做《程序员升职记》,steam 平台只需¥36。通过组合几条非常基本的指令,例如加减、自加、自减、比较、跳转,实现一些小功能,例如简单的数值绝对值输出、两数乘法、阶乘运算、反转字符串等。游戏的本质是一款支持 11 条指令,最多支持 24 字节内存的 8 位 cpu 的运行。

    level

    这款游戏前面的一些关卡主要在引导和介绍游戏,同时不断给出新的指令,开始只有简单的几条指令,后面会加入对内存的使用,间接寻址的使用,因此可以实现指针的操作。每一关都会给出随机的输入,经过你编写的程序后,算出符合要求的输出。编写程序的过程可以通过单步运行来调试,所以可以很快知道程序在哪里出错,并修改。

     2018-07-21 展开全文

    PCM 数据无法直接通过播放器打开,因为少了 44 字节的文件头,这里面最主要的信息是描述该 PCM 的采样频率,通道数,以及位数。

    双击 pcmToWav.exe,拖入待转换的 PCM 数据,输入通道数和采样频率,默认使用 16-bit 表示一个采样点。等待程序运行结束,就会生成一个同名的 .wav 文件。

     2018-06-07 展开全文

    fileToC

    github项目地址

    简单说明

    fileToC 是一款使用 python 编写的程序,可以将任意文件的二进制数据转换为 .C 文件的数组,以便程序编译。

    双击 fileToC.exe 程序,将要转换的 test.any 文件拖入命令行,等待程序自动转换,结束后便可以得到一个和该文件同名的 .c 文件

     2018-05-18 展开全文