U-BOOT runs in RAM on FL2440

本文介绍了U-Boot在RAM中的启动调试过程,包括启动LED指示、解决串口打印乱码及启动crash等问题。作者通过调整时钟配置并设置正确的RAM大小解决了部分问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这些日子断断续续的琢磨 u-boot 在RAM 中启动运行(因为还没试验过用debugger下载BOOT 到NAND上)。主要做了以下:

1. 在start.S 中,启动点亮LED0。(表示U-BOOT已经运行)

2. 解决串口打印乱码

    其实是时钟设置有问题。CONFIG_SYS_CLK_FREQ = 12M。FL2440板子上的晶振是12MHz的。

3. 解决启动crash问题

    在board_init_f()中加了

 gd->ram_size = gd->bd->bi_dram[0].size;

不知道为什么U-BOOT把全局数据中的gd->bd->bi_dram[0].size的都初始化了,但后面代码中用的 gd->ram_size 一直是0。不知道是U-BOOT本身的Bug还是跟我的RAM IM RAM 有关。还要再研究。或者等到RUN FROM NAND的时候就明白了。



### 如何配置 `druid-spring-boot-starter` 示例教程最佳实践 #### 一、引入依赖 为了使用 Druid 数据库连接池,在项目的 `pom.xml` 文件中加入如下 Maven 依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${最新版本号}</version> </dependency> ``` 此操作确保了项目能够利用到 Druid 提供的功能[^1]。 #### 二、基础配置项设置 编辑 `application.properties` 或者 `application.yml` 文件来完成基本参数设定。以下是 YAML 格式的例子: ```yaml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 username: root password: 123456 # 初始化大小,最小,最大 initial-size: 5 min-idle: 5 max-active: 20 # 配置获取连接等待超时的时间 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 'x' test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 filters: stat,wall,log4j connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 ``` 上述配置涵盖了数据库连接的核心属性以及性能优化建议,比如通过调整连接池的最大活动数 (`max-active`) 和初始化数量 (`initial-size`) 来适应应用的实际负载情况;启用 SQL 合并统计功能以便更好地监控慢查询等[^2]。 #### 三、高级特性集成 对于更复杂的场景,可以考虑开启更多高级选项,如 Web 控制台支持用于实时查看和分析 JDBC 性能指标。这通常涉及到额外的安全性和权限控制措施。 要激活该模块,需添加以下配置至应用程序文件内: ```properties # 开启Druid内置监控页面访问路径,默认为/druid/* spring.datasource.druid.web-stat-filter.enabled=true # 设置允许访问的IP白名单(逗号分隔),留空表示不限制 spring.datasource.druid.web-stat-filter.allow= # 禁止某些URL模式被过滤器处理 spring.datasource.druid.web-stat-filter.deny=/denyUrlPattern ``` 此外,还可以自定义 AOP 切面拦截特定业务逻辑前后的行为,从而进一步增强系统的可观测性[^3]。 #### 四、测试验证 最后一步是编写单元测试案例以确认所有配置都按预期工作正常。可以通过 JUnit 结合 Spring TestContext Framework 实现自动化测试流程。 ```java @SpringBootTest(classes = Application.class) public class DataSourceTest { @Autowired private DataSource dataSource; @Test public void contextLoads() throws SQLException { assertNotNull(dataSource); System.out.println("dataSource=" + dataSource); Connection conn = null; try { conn = dataSource.getConnection(); System.out.println("conn=" + conn); System.out.println("JDBC URL:" + conn.getMetaData().getURL()); System.out.println("Username:" + conn.getMetaData().getUserName()); } finally { if (null != conn) { conn.close(); } } } } ``` 这段代码片段展示了如何注入 `DataSource` 对象并通过它建立新的数据库连接实例来进行简单的连通性检测[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值