---恢复内容开始---

一 根据相近型号的demo BSP进行修改制作自己的BSP

https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md

项目 需要修改的内容说明
CubeMX_Config (文件夹) CubeMX 工程:芯片型号,时钟源,下载方式,使能串口外设(只需要,为何?),配置时钟树,生成对应工程只是为了获得board/CubeMX_Config/Src/main.c下的SystemClock_Config()拷贝到board.c中
linker_scripts (文件夹) BSP 特定的链接脚本
board.c/h 系统时钟、GPIO 初始化函数、芯片存储器大小(根据具体芯片修改 FLASH 和 RAM 的相关参数)
Kconfig 芯片型号、系列、外设资源
SConscript 芯片启动文件、目标芯片型号

修改工程模板

打开mdk或IAR修改芯片。调试下载方式等

二 。通过使能偏上外设编写自己的板载外设,可以利用用板载的外设、内核资源/组件开发相应应用利用,偏上外设加板级扩展模块也相当于板上外设级别

为 BSP 添加驱动时,STM32CubeMX 工具可以快速的完成使能外设配置管脚的工作。而外设初始化,中断配置,DMA配置等等则由 RT-Thread 提供的驱动文件来完成。也就是说,虽然 STM32CubeMX 生成了多个文件用来初始化外设,但 RT-Thread 只使用了 STM32CubeMX 生成的 stm32fxx_hal_msp.c 文件(存放了在 CubeMX 工具中开启的外设驱动的配置代码)和 stm32fxx_hal_conf.h 文件(文件里提供的宏开关会决定 HAL 库将哪些外设驱动添加到工程中)。

RTT学习之BSP的更多相关文章

  1. RTT学习之线程

    一 线程的创建和删除:rt_thread_create()创建的句柄,对应的删除rt_thread_delete(),注意线程的删除只是将线程的状态该为close,进入空闲任务才删除.rt_threa ...

  2. RTT学习之启动流程

    总结RT-Thread的启动流程. 非运行时与运行时的image文件分别是什么样的,请画下来.是谁将 RW 段中的  RW-data(初始化的全局变量)搬运到 RAM 中? MDK环境下各种数据段存储 ...

  3. RTT学习之SPI设备

    SPI分为主.从.设备:具体又分标准SPI/DUAL SPI/QUAD SPI(用80字节的RAMrt_err_t rt_spi_take_bus(struct rt_spi_device *devi ...

  4. RTT学习

    一互斥量:是信号量的一种,用于共享资源的排他性使用,以锁的形式存在,初始化时为可用,不能在中断中使用,可能导致优先级翻转. 二 事件:创建.删除.初始化.解绑.等待.发送.可以一对多多对的,发送一个事 ...

  5. RTT学习之软件包

    网络工具集 (NetUtils) Ping 工具: 是一种网络诊断工具,用来测试数据包能否通过 IP 协议到达特定主机,依赖于LWIP,支持域名和IP访问: NTP 工具:NTP 是网络时间协议 (N ...

  6. RTT学习之RTC设备

    RTC: 目前系统内只允许存在一个 RTC 设备,且名称为 "rtc",所以不用查找设备 启用 Soft RTC (软件模拟 RTC),对无硬件RTC 启用 NTP 时间自动同步, ...

  7. RTT学习之sensor设备

    Sensor设备的常用操作: 首先查找传感器设置获取设备句柄.rt_device_find 以轮询.FIFO.中断.任意一种方式打开传感器,中断和FIFO需要设置接收回调函数(释放一个信号量给接收线程 ...

  8. RTT学习之PWM、ADC设备

    一 使用步骤: 查找 PWM 设备获取设备句柄.rt_device_find() 设置 PWM 周期和脉冲宽度.rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, ...

  9. rtt学习之线程间同步与通信

    一 线程间的同步与互斥:信号量.互斥量.实践集 线程互斥是指对于临界区资源访问的排它性,如多个线程对共享内存资源的访问,生产消费型对产品的操作.临界区操作操作方法有: rt_hw_interrupt_ ...

随机推荐

  1. (树)判断二叉树是否为BST

    题目:判断一颗二叉树是否为BST. 思路:其实这个问题可以有多个解决方法. 方法一:递归解决.根据BST的特性.左边的小于根节点的值,右边的大于根节点的值.并且对于每一棵子树都是如此.所以我们可以直接 ...

  2. [jQuery]使用jQuery.Validate进行客户端验证(初级篇)

    以前在做项目的时候就有个很大心病,就是微软的验证控件,虽然微软的验证控件可以帮我们完成大部分的验证,验证也很可靠上手也很容易,但是我就是觉得不爽,主要理由有以下几点: 1.拖控件太麻烦,这个是微软控件 ...

  3. jmeter beanShell 修改http请求参数

    转自http://www.tuicool.com/articles/rEri63   http://powertech.iteye.com/blog/2174521 主题 HTTPJMeter 在使用 ...

  4. [译]在Javascript中制造二维数列

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  5. mysql远程访问被禁止

    远程连接Mysql服务器的数据库,错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx  is not allowed to connect to this MySQL ...

  6. Android点击事件(click button)的四种写法

    在学习android开发和测试的时候发现不同的人对于click事件的写法是不一样的,上网查了一下,发现有四种写法,于是想比较一下四种方法的不同 第一种方法:匿名内部类 代码: package com. ...

  7. Forward链、Input链和Output链的区别

    转载自:http://blog.chinaunix.net/uid-27863080-id-3442374.html 1. 如果数据包的目的地址是本机,则系统将数据包送往Input链.如果通过规则检查 ...

  8. ERROR (UnicodeEncodeError): 'ascii' codec can't encode character u'\uff08' in position 9: ordinal not in range(128)

    环境win10+anaconda2 在安装labelme时遇到了这个问题,其实跟labelme没啥关系,主要是python2读取中文路径时报错,因为默认编码是ASCII,不认识中文,看到有一个一次性解 ...

  9. [JavaScript]Prototype继承

    JavaScript相对于其他的编程语言是比较简单的,只要吃透了Prototype和Closure(闭包),基本上就可以说精通JavaScript了. JavaScript里如何实现向Java语言的O ...

  10. Solr学习笔记(4) —— SolrCloud的概述和搭建

    一.概述 1.1 什么是SolrCloud Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机 ...