自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (3)
  • 收藏
  • 关注

原创 mkconfig文件讲解

#!/bin/sh -e # Script to create header files and linksto configure# U-Boot for a specific board.## Parameters:  Target Architecture  CPU  Board [VENDOR] [SOC]## (C) 2002-2006 DENX Softwa

2018-04-15 15:38:36 1136

原创 lowlevel.init函数分析

/* *Memory Setup stuff - taken from blob memsetup.S * *Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and *                     Jan-Derk Bakker(J.D.Bakker@its.tudelft.nl)

2018-04-15 15:33:22 2992

原创 dram.init讲解

int dram_init(void)//是关于ddr的初始化,在会汇编阶段已经初始化过ddr,否则也无法relocate到第二阶段//这里再次初始化是因为这里是在给gd->bd里面关于ddr配置部分的全局变量赋值,让gd->bd数据记录下来//当前的开发板的ddr的配置信息,以便在uboot中使用内存//(3):从代码上看。其实就是初始化gd->bd->bi_dra...

2018-04-14 16:18:22 1567

原创 uboot之第一阶段start.S讲解

/* *Memory Setup stuff - taken from blob memsetup.S * *Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and *                     Jan-Derk Bakker(J.D.Bakker@its.tudelft.nl) * *Modifi...

2018-04-14 16:16:41 493

原创 stm32的几种读保护措施讲解

综合网上讲解的几种读保护措施,这里简单总结下:采用stm32唯一ID作为加密的字符,使用固定密码,采用16位字节AES加密的方式生成密文,然后写进flash,,app程序执行的时候需要判断读取的stm32唯一ID号和AES解密出来是否一致,是执行程序,否则不执行,测试过,但这个方案针对生产比较麻烦,这里不采用 ChipUniqueID[2] = *(__IO u32 *)(0X1FFFF7F0);...

2018-04-10 16:09:29 7384 1

原创 DAC7512驱动原理

通过阅读DAC7512的数据手册,其是16位DAC数据,12位精度采集我们可以知道如下信息:因为其最大通信频率可以达到30Mhz,因此其驱动通信协议支持DSPI和SPI,根据下图说明明驱动的时候需要向DAC写进数值,范围0-4095,其经过String 寄存器后,数值被分配到不同的路径,相应的开启通路的电阻进行分压,得出输出电压数据手册上针对如何驱动写明了,数据需要在怕片选拉低的时候送进去有效,根...

2018-04-03 10:06:22 9582

drvtimer.zip

开发过程中参考了gd的用户手册,特别是在时钟树那里,时钟树不同,开发过程中参考了gd的用户手册,特别是在时钟树那里,时钟树不同,亲测可用,定时准确 特别重要注意: 使用方式: static void led2_thread_entry(void* parameter) { rt_device_t hw_dev = RT_NULL; rt_err_t ret = RT_EOK; rt_uint32_t freq = 5000; //定时一秒 //rt_device_find(HWTIMER_DEV_NAME); hw_dev = rt_device_find(HWTIMER_DEV_NAME); if (hw_dev == RT_NULL) { rt_kprintf("hwtimer sample run failed! can't find %s device!\n", HWTIMER_DEV_NAME); //return RT_ERROR; } ret = rt_device_open(hw_dev, RT_DEVICE_OFLAG_RDWR); if (ret != RT_EOK) { rt_kprintf("open %s device failed!\n", HWTIMER_DEV_NAME); //return ret; } ret = rt_device_control(hw_dev, HWTIMER_CTRL_FREQ_SET, &freq;); if (ret != RT_EOK) { rt_kprintf("set frequency failed! ret is :%d\n", ret); //return ret; } for( ;; ){ rt_kprintf("flag = %d\r\n",getflag()); rt_kprintf("The key of Tamper is pressed.\r\n"); rt_pin_write(LED1_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED1_PIN, PIN_LOW); rt_thread_mdelay(500); } }

2019-08-16

ucosiii-stm32f103ZET6移植可行

ucosiii-stm32f103ZET6移植可行,本程序是在官方源码Micrium\uC-Eval-STM32F107上移植过来的

2018-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除