首页 > 其他分享 >close_uart0_rom_code_printf

close_uart0_rom_code_printf

时间:2023-04-23 22:02:09浏览次数:42  
标签:code ROM RTC 寄存器 打印 关闭 printf close

img# 关闭 uart0 的 ROM code 打印

目录

简介

每次 uart0 在上电重启、deepsleep、或者其它复位启动的时候,都会打印一大段 ROM code 里面的信息。这个打印会影响启动的速度,如果想要加快一些启动速度,那么就可以选择关闭这个打印信息。

关闭配置

![UART0 的 ROM 日志打印控制.jpg](./picture_collection\UART0 的 ROM 日志打印控制.jpg)

  1. 由上图可知,控制关闭 ROM code 的打印有三个控制变量。

临时关闭

  1. 只需要将 RTC_CNTL_RTC_STORE4_REG[0] 寄存器的值写为 1 ,就能在下次启动时临时关闭 ROM code 的打印。

  2. 这个只能生效一次,所以每次重启之前都需要操作一下这个寄存器。

  3. 这个寄存器里面的值,不能断电保存,所以在断电重启时,这个寄存器不会生效。

    //提供一种在ESP32-S3 里面快捷使能临时关闭 ROM code 打印的方案,直接操作寄存器的值。
    
     (* (uint32_t *) 0x600080c0)=1;
    

永久关闭

  1. 可以通过写 eFuse 的相关值为 3 。这样就直接关闭了,不受其它条件的影响。
  2. eFuse 不为 3 时,只能可以通过外部上下拉 GPIO46 来对其进行控制。

  1. 这篇文章是参看 ESP32-S3 的手册所写的,其它的型号可能会不一样。
  2. RTC_CNTL_RTC_STORE4_REG[0] 的值可以任意多次读写,而 eFuse 仅可烧写一次。因此,RTC_CNTL_RTC_STORE4_
    REG[0] 可用于临时关闭 ROM 日志打印,而 eFuse 可用于永久关闭 ROM 日志打印。
  3. GPIO46 的上下拉,只能通过外部的上拉电阻或者下拉电阻进行,程序里面的上下拉在启动时是检测不到的。

参考手册

  1. esp32-s3_datasheet_cn.pdf

  2. esp32-s3_technical_reference_manual_cn.pdf

标签:code,ROM,RTC,寄存器,打印,关闭,printf,close
From: https://www.cnblogs.com/Spin-jump/p/17347887.html

相关文章

  • Educational Codeforces Round 39 (Rated for Div. 2) -- D. Timetable (DP)
    写得很折磨人,每次dp都写个一个多小时,写出来明明觉得不难.题目大意:可以进行K次操作,把删除1,进行k次操作后每行第一个1和最后一个1的位置相减的绝对值加1得到的结果最小。做法:每次肯定是要从左删或者从右边删,然后顺着这个思路,先把每行的进行小于等于k次操作时,每行最小......
  • check_crystal_oscillator_size_in_the_code
    #如何在代码里面查看晶振的大小目录概述方案注参考文章概述不同晶振的类型,大小有所不同,它们适合的使用场合也有所不同。主系统时钟一般会使用大一点的晶振,这样通过倍频之后,可以轻松得到想要的主频。RTC时钟一般使用32.768K晶振。RTC的晶振频率为什么是32768Hz?①RTC时间......
  • codeforces 559C Gerald and Giant Chess(dp+组合数学)
    题目链接:codeforces559C题目大意:给出一个h*r的矩阵,从左上角走到右下角,中间有一些点不能经过,问不同的路径有多少种?题目分析:首先我们考虑一个n*m的矩阵,从左上角只能向右或向下走能走到右下角的方案数,也就是C(n+m,n),就是一共要走n+m次,选出n次横着走。那么我们定义dp[i]表示在前不经......
  • codeforces 545C C. Woodcutters(dp+二分)
    题目链接:codeforces545C题目大意:给出一些树的位置和高度,每棵树可以砍倒,覆盖[xi−hi,xi]或者覆盖[xi,xi+hi],或者不砍倒,问最多砍倒多少棵树?题目分析:我们记录dp[i]表示选取到i棵树的时候用的最短的区间长度。每次枚举每棵树,二分到最大的不超过当前树位置的个数,然后利用当前树的信息......
  • codeforces 4D D. Mysterious Present(dp)
    题目连接:codeforces4D题目大意:给出n个信封,这n个信封有长和宽,给出卡片的尺寸,求取能够装入卡片的最长的序列,序列满足后一个的长和宽一定大于前一个,求最长的这个序列的长度,并且给出一组可行解。题目分析:一看这种题目就是dp的题目,状态定义dp[i]为以i结尾的序列的最大的长度,并且利用一......
  • codeforces 2B B. The least round way(dp+数论)
    题目链接:codeforces2B题目大意:给出一个n*n的矩阵,从左上角走到右下角,只能向右或向下走,问路径上的数之积末尾0最少的方案是什么。题目分析:首先我们要做两个预处理,处理出每个位置上的数包含多少个2的质因子和多少个5这个质因子然后我们统计路径上弄到最少的2的方案数和最少的5的方案......
  • codeforces 126B B. Password(kmp+dp)
    题目链接:codeforces126B题目大意:给出一个字符串,找出一个子串既是它的前缀,也是它的后缀,还是一个非后缀也非前缀的子串。题目分析:本来挺简单的一个题,最开始想复杂了,还用了后缀数组,醉了。这个题主要用的是kmp的next数组,首先我们要了解next数组的定义,next[i]表示以i为末尾的子串的后缀......
  • codeforces 118D D. Caesar's Legions(dp)
    题目链接:codeforces118D题目大意:给出n1个1,n2个2,给出k1和k2代表连续的1和2的最大长度,问能够构造的合法的不同串的数量。题目分析:能够递推,所以想到能够利用dp做。首先我们定义状态,dp[i][j][k][2]代表以1或2结尾,结尾相同的元素的数量为k,1的总数是j的当前序列长度为i的串的数量。首先......
  • codeforces 264B B. Good Sequences(dp+数论)
    题目链接:codeforces264B题目大意:给出n个数,利用这n个数构造一个好的序列,好的序列是单调增的,而且序列中相邻的两个元素都不互质,问最长的好序列的长度是多少。题目分析:首先我们定义状态dp[i]表示当前的数进行构造的序列末尾的数的质因数包含i的时候的最长的情况。然后我们从小到大枚......
  • codeforces 159D D. Palindrome pairs( manacher+dp )
    题目链接:codeforces159D题目大意:给出一个字符出,求取这个字符串中互相不覆盖的两个回文子串的对数。题目分析:首先能够用manacher模板,因为这个算法处理的字符串的长度式奇数,所以我们首先将原字符串拓展,也就是用一个没有出现过的子串填充到每两个字符之间,首位也要添加,这样处理后得到......