Ronan Blog

罗华东的博客 | 永远相信美好的事情即将发生

什么是价值观?

2024-09-03 Docs Ronan

注意:价值观指的是人们认为较有价值的观念(常常不曾言明)。它们树立了一定的行为准则,我们据此来衡量人类行为的品质高下。

你在列举价值观的时候是否遇到了困难?价值观就是我们自己所认可的行为准则,我们希望他人的言行能与之相一致。当我们期望政治代表们能“实话实说”时,我们向他们和我们自身暗示的信息就是:诚实是我们最重视的价值观之一.你可以问间自己,你希望自己的朋友都是些什么样的人,你希望自己的孩子被培养出什么样的行为准则.对诸如此类问题的求解可以帮助你拓宽对价值观的理解.

–《学会提问》

「Gmeek」上传脚本(单篇或批量)

2024-09-03 Docs Ronan

[!caution]

注意: 该脚本仅适用于通过Gmeek项目搭建的博客网站 在开始使用之前,需要创建 github 的个人 Token

1.创建github个人Token

1.在 GitHub 上任何页面的右上角,单击您的个人资料照片,然后单击 Settings
2.在左侧边栏中,单击 Developer settings(开发人员设置)
3.在左侧边栏中的 Personal access tokens (个人访问令牌) 下,单击 Tokens (classic)
4.选择 Generate new token(生成新令牌),然后单击 Generate new token (classic)
5.在 Note 字段中,为您的令牌指定一个描述性名称。
6.要为您的令牌指定过期时间,请选择 Expiration(过期),然后选择默认选项或单击 Custom(自定义)以输入日期。
7.选择要授予此令牌的范围。要使用令牌从命令行访问存储库,请选择 repo ( 这里一定要打上勾!!! ) 。没有分配范围的令牌只能访问公共信息。
8.滑动到底部,单击 Generate token
9.将新令牌复制到剪贴板并且保管好,令牌只出现一次,一定要保管好!一定要保管好!一定要保管好!

2.使用方法

以下有两个方法,分为sh脚本和python脚本:

[!tip] 建议: Linux与mac系统使用 sh 脚本,Windows使用py脚本体验更佳 也可根据喜好自行采用

2.1配置脚本

对于 sh 脚本

[!important]

使用前需确认以下:

  • 系统已安装curl
  • 系统已安装jq
  • 系统可使用bash

curl、jq 安装方法由于系统不同,方法多样,所以具体安装方法可以自行查找…

在代码开始的前几行,找到以下几个值,在引号里填入自己的信息:

  • TOKEN 为自己创建的Token值
  • OWNER 为自己的github用户名
  • REPO 为自己的Gmeek博客仓库名,一般是 xxx.github.io

对于 py 脚本

1.在开始使用之前,需要安装 requests 模块

Continue reading

手动搭建 stm32 标准外设库+Makefile工程

2024-09-03 Docs Ronan

本教程以 stm32f407 为例,其他 stm32 芯片配置方式大同小异。

1.下载官方标准外设库

进入 ST 官网的嵌入式软件板块 ,根据自身板子型号选择,有F0-F4多种型号。

之后根据提示选择下载即可,如果没有意外的话,应该会获得一个类似 en.stsw-stm32065_v1-9-0.zip(这是 F4 的标准库) 的压缩包。

2.创建工程

2.1建立工程结构

1.解压从官网下载的标准外设库 en.stsw-stm32065_v1-9-0.zip ,获得一个 STM32F4xx_DSP_StdPeriph_Lib_V1.9.0 目录

2.新建一个my_project目录,并在该目录下创建四个子目录:driverincludelibsrc

3.将标准固件库目录.../STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Include文件夹,以及固件库文件目录.../STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/TrueSTUDIO文件夹,全部拷贝到my_project/cmsis文件夹下

4.将标准固件库文件目录.../STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/STM32F4xx_StdPeriph_Driver文件夹下的incsrc文件夹全部拷贝移植到lib文件夹下

5.将标准固件库文件目录.../STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Libraries/CMSIS/Device/ST/STM32F4xx/Include文件夹目录下的stm32f4xx.hsystem_stm32f4xx.h文件拷贝到include文件夹下

6.将标准固件文件目录.../STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Project/STM32F4xx_StdPeriph_Templates目录下的main.cstm32f4xx_it.csystem_stm32f4xx.c拷贝移植到src文件夹下,stm32f4xx_conf.hstm32f4xx_it.h拷贝到include文件夹中,其中main.c文件是STM32工程文件的主函数程序,(main.c 也可以不拷贝,自行创建即可)

7.将标准固件库文件目录.../STM32F4xx_DSP_StdPeriph_Lib_V1.9.0/Project/STM32F4xx_StdPeriph_Templates/TrueSTUDIO/STM32F40_41xxx文件夹下的STM32F417IG_FLASH.ld拷贝到my_project的工程根目录下,并重命名为stm32_flash.ld

2.2编写 Makefile

到这里我们需要自行手动编写一个 Makefile…

逗你玩呢,我已经写好了,请慢用:


CROSS_COMPILE = arm-none-eabi-

# 将源文件放在这里 (*.c)
SRCDIR=./src
LIBDIR=./lib/src

SRC = ${wildcard ${LIBDIR}/*.c} \
	  ${wildcard ${SRCDIR}/*.c}

# 将以该名称生成二进制文件 (.elf, .bin, .hex)
PROJECT_NAME=out

# 编译器设置。仅编辑 CFLAGS 以包含其他头文件。
CC = $(CROSS_COMPILE)gcc
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)gcc
OBJCOPY = ${CROSS_COMPILE}objcopy

# compiler flags 编译器标志
CFLAGS = -g -O2 -Wall -Tstm32_flash.ld
CFLAGS += -DUSE_STDPERIPH_DRIVER
CFLAGS += -D STM32F40_41xxx
CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += -I .
CFLAGS += -specs=nosys.specs

# 包含 STM 库中的文件
CFLAGS += -I./cmsis/Include
CFLAGS += -I./include
CFLAGS += -I./lib/inc

SRC += ./cmsis/TrueSTUDIO/startup_stm32f40_41xxx.s

# 将 SRC 中每个 .c 文件的扩展名替换为 .o,生成对应的目标文件。例如,如果 SRC 中有一个文件 main.c,它会生成 main.o,以便后续编译和链接时使用这些目标文件。
OBJS = $(SRC:.c=.o)

vpath %.c ./lib/src \
vpath %.c ./src \

.PHONY: proj

all:proj

proj:$(PROJECT_NAME).elf

$(PROJECT_NAME).elf: $(SRC)
	$(CC) $(CFLAGS) $^ -o $@
	$(OBJCOPY) -O ihex $(PROJECT_NAME).elf $(PROJECT_NAME).hex
	$(OBJCOPY) -O binary $(PROJECT_NAME).elf $(PROJECT_NAME).bin

clean:
	rm -f *.o $(PROJECT_NAME).elf $(PROJECT_NAME).hex $(PROJECT_NAME).bin

flash:proj
	st-flash write $(PROJECT_NAME).bin Ox8000000
	STM32_Programmer_CLI -c port=SWD -w $(PROJECT_NAME).hex 

将以上内容复制并保存为Makefile,将其放到my_project工程根目录下

Continue reading
Older posts Newer posts