历史上的今天
今天是:2024年10月05日(星期六)
2018年10月05日 | STM32程序移植之_内部flash开机次数管理
2018-10-05 来源:eefocus
1. 测试环境:STM32C8T6
2. 测试接口:
3. 串口使用串口一,波特率9600
单片机引脚------------CH340引脚
VCC--------------------VCC
GND-------------------GND
PA9--------------------RXD
PA10-------------------TXD
1. 功能:
1. 使用STM32内部falsh进行开机次数记录
2. 通过串口输入密码进行权限的设置
3. 设置唯一硬件标识
2. 移植基础
1. 008_STM32之_keil编译内存大小解析
2. 009_STM32程序移植之_内部falsh
3. 010_STM32程序移植之_lib库建立
3. 前面三个是解析,有了基础之后进行移植
4. 四个文件

5. 第一个是普通串口打印文件
6. 第二和第四个是开机管理的
7. 第三个是密码初始化,就是先刷这个程序进去初始化变量
8. 开始移植
9. 确定串口程序能够使用,能够串口打印和接收数据
10. 开始移植
11. 调用函数检测
![]()
12. 程序需要修改的地方就这里

13. 程序编译成功之后先不下载这个程序
14. 我们下载密码初始化这里这个程序,进行变量的初始化
![]()
15. 下载之后会打印一些都系出来,这个里面有解析
![]()
16. 密码初始化完成之后,我们再下载刚才移植的程序

17. 会有数据打印出来,打印的数据是因为我们前面进行了密码初始化
![]()
18. 看现象,我们密码初始化玩之后能够就行开机20次

19. 当开机超过20次之后,程序就卡死在这里了,不能往下运行了

20. 我们初始密码是{123456},当前面四个正确后面两个不正确时候获得临时开机权限
例如:{123420} //获得临时开机权限20次
{123450} //获得临时开机权限20次

21. 在串口中断那里调用串口密码输入
![]()
22. 就算重新下载进去也不能进行程序的运行
23. 继续20点,输入密码{123410} 获得临时权限10次,

24. 复位看效果,当临时权限超过10次之后,再次失效

25. 输入正确密码之后可以获得永久权限


26. 临时权限只能输入一次,再次输入就没有用了
史海拾趣
|
__asm__(\"ldw 0(%0), %%r0\" : : \"r\" (addr)); 就这段代码,是从内核中拿来用的。 20 21#define ARCH_HAS_PREFETCH 22static inline void prefetch(const void *addr) 23{ 24 &nbs ...… 查看全部问答> |
|
PLC 西门子 S7-200 PLC经过PID调节,输出变频器的频率控制容器压力。 现在想在升压的过程中,让压力值按照正弦曲线上升,如何编程?请给个思路。… 查看全部问答> |
|
各位大侠帮忙看看这个问题 http://topic.eeworld.net/u/20090210/18/09cb0f9d-cf2c-49c9-a84e-29d981e9a4e9.html … 查看全部问答> |
|
$(\'swf_a8M\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMjk4NTk3Mjcy/v.sw ...… 查看全部问答> |




