当前位置: 首页 > news >正文

爬虫做网站相关教程宝鸡seo优化公司

爬虫做网站相关教程,宝鸡seo优化公司,万全孔家庄做网站,外贸网站如何优化文章目录 0. env1. 软件2. 硬件 10. 需求1. 硬件2. 软件 20. DatasheetCPURTC 30. 调试步骤1. 硬件环境搭建2. UEFI 开发环境搭建3. 修改步骤1. UEFI 中使能RTC驱动、配置RTC信息等1.1 使能RTC驱动1.2 修改RTC对应的IIC配置信息1.3 解决驱动冲突1.4 验证波形 2. 修改对应RTC驱动…

文章目录

  • 0. env
    • 1. 软件
    • 2. 硬件
  • 10. 需求
    • 1. 硬件
    • 2. 软件
  • 20. Datasheet
    • CPU
    • RTC
  • 30. 调试步骤
    • 1. 硬件环境搭建
    • 2. UEFI 开发环境搭建
    • 3. 修改步骤
      • 1. UEFI 中使能RTC驱动、配置RTC信息等
        • 1.1 使能RTC驱动
        • 1.2 修改RTC对应的IIC配置信息
        • 1.3 解决驱动冲突
        • 1.4 验证波形
      • 2. 修改对应RTC驱动,适配SD3077
        • 1.1 修改IIC3的引脚复用
        • 1.2 允许SD3077的写使能功能
        • 1.3 验证时间
    • 4. 验证
  • 90. 附件
    • 1. CPU 参考手册
    • 2. RTC 参考手册


0. env

1. 软件

开发环境:ubuntu1804
toolchain:飞腾GCC4.9
UEFI:edk2-core-3.5
运行环境:kylin v10 | kernel-5.4 | aarch64 | arm64

2. 硬件

CPU:飞腾 腾锐D2000
RTC:SD3077
硬件连接:CPU(I2C3) — RTC


10. 需求

1. 硬件

RTC 这路的IIC要通信正常

2. 软件

UEFI 中完成RTC更新
linux中可手动更新date


20. Datasheet

CPU

腾锐D2000软件编程手册-V1.1.pdf // 官网下载:略

RTC

SD3077+datasheetv3.4.pdf // 官网下载:参考附件


30. 调试步骤

1. 硬件环境搭建

D2000 核心板 通过I2C3接口外接RTC SD3077
RTC供电3V3
CPU可单独上下电,不影响RTC供电

2. UEFI 开发环境搭建

ubuntu1804 搭建EDK2的环境,飞腾适配过的版本
安装对应toolchain:飞腾GCC4.9
制作bootloader的工程:略

3. 修改步骤

1. UEFI 中使能RTC驱动、配置RTC信息等

vi PhytiumPkg/PhytiumD2000Pkg/PhytiumD2000Pkg.dsc
1.1 使能RTC驱动
 !if $(BOARD) == "DEMO"DEFINE HDA_SUPPORT             = TRUE
-  DEFINE SD3068                  = FALSE
+  DEFINE SD3068                  = TRUE

remark: 1. 使能这里的SD3068,
从而配置I2C slave addr 为:0x32
配置RTC使用的I2C controller Base Address 为:0x28009000 即I2C3的控制器

1. 如果I2C_RTC_USE没使能,使能后即可使用RTC-efi53   DEFINE I2C_RTC_USE             = TRUE
1.2 修改RTC对应的IIC配置信息
  1. 使能SD3068后
1. 则RTC使用的slave address修改为:0x32529 !if $(SD3068) == TRUE530   gPhytiumPlatformTokenSpaceGuid.PcdRtcI2cControllerSlaveAddress|0x32531 !else532   gPhytiumPlatformTokenSpaceGuid.PcdRtcI2cControllerSlaveAddress|0x68533 !endif
2. 默认使用的是I2C0、I2C1的控制器来操作RTC;实际使用的是I2C3,所以这里的RTC使用的I2C controller的基质要修改为I2C3,即0x28009000 // 参考手册说明# RTC I2C Controller Register Base Address and Speed#
...
-  gPhytiumPlatformTokenSpaceGuid.PcdRtcI2cControllerBaseAddress|0x28007000		// IIC1 飞腾空出了I2C0、I2C1
+  gPhytiumPlatformTokenSpaceGuid.PcdRtcI2cControllerBaseAddress|0x28009000		// IIC3 实际使用的是I2C3

在这里插入图片描述

  1. 使能I2C_RTC_USE后
1. 则使用的事Ds1339_RtcLib.inf,对应驱动:./PhytiumPkg/PhytiumD2000Pkg/Library/Ds1339_RtcLib/253   # Board Specific RealTimeClock Library254   !if $(I2C_RTC_USE) == TRUE255     RealTimeClockLib|$(PLATFORM_PACKAGE)/Library/Ds1339_RtcLib/Ds1339_RtcLib.inf256   !else257     RealTimeClockLib|$(PLATFORM_PACKAGE)/Library/XgeneRealTimeClockLib/XgeneRealTimeClockLib.inf258   !endif259   TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
1.3 解决驱动冲突

驱动冲突,占用了0x28000000,+0x5000的位置,正好囊括了i2c3的地址

1. 如果不用也可以不使能该功能--- a/PhytiumPkg/PhytiumD2000Pkg/Drivers/FixGcdDxe/FixGcdDxe.c
+++ b/PhytiumPkg/PhytiumD2000Pkg/Drivers/FixGcdDxe/FixGcdDxe.c
@@ -54,18 +54,18 @@ InitializeFixGcdDxe ();ASSERT_EFI_ERROR (Status);-  Status = gDS->AddMemorySpace (
-                  EfiGcdMemoryTypeReserved,
-                  0x28008000, 0x5000,
-                  EFI_MEMORY_UC
-                  );
-  ASSERT_EFI_ERROR (Status);
+  //Status = gDS->AddMemorySpace (
+  //                EfiGcdMemoryTypeReserved,
+  //                0x28008000, 0x5000,
+  //                EFI_MEMORY_UC
+  //                );^M
+  //ASSERT_EFI_ERROR (Status);-  Status = gDS->SetMemorySpaceAttributes (
-                  0x28008000, 0x5000,
-                  EFI_MEMORY_UC
-                  );
-  ASSERT_EFI_ERROR (Status);
+  //Status = gDS->SetMemorySpaceAttributes (
+  //                0x28008000, 0x5000,
+  //                EFI_MEMORY_UC
+  //                );
+  //ASSERT_EFI_ERROR (Status);return Status;}
1.4 验证波形

编译后,测量I2C3这一路的信号,正常会产生RTC读写信号

2. 修改对应RTC驱动,适配SD3077

使用上述修改,则需要修改的驱动为:./PhytiumPkg/PhytiumD2000Pkg/Library/Ds1339_RtcLib/*

1.1 修改IIC3的引脚复用
  1. rtc-efi不需要依赖ACPI配置RTC,管脚引用可以直接放在驱动中执行。
  2. I2C3 管脚复用信息如下:
控制域Func2
hdt_mb_done_state_padi2c_3_scl
hdt_mb_fail_state_padi2c_3_sda
  1. I2C3 引脚功能配置寄存器:
    在这里插入图片描述
偏移位域说明
0x0204[3 : 2]控制 hdt_mb_done_state_pad 的上下拉
0x0204[1 : 0]控制 hdt_mb_done_state_pad 的复用功能
0x0208[31 : 30]控制 hdt_mb_fail_state_pad 的上下拉
0x0208[29 : 28]控制 hdt_mb_fail_state_pad 的复用功能

实际使用:I2C3,则需要复用 这两个pin为Func2
即:
SCL : 0x28180000 + 0x0204 : [3:0] : 写入0010
SDA : 0x28180000 + 0x0208 : [31:28] : 写入0010

  1. 在源码驱动初始化程序段中添加管脚复用
vi PhytiumPkg/PhytiumD2000Pkg/Library/Ds1339_RtcLib/Ds1339_RtcLib.c
1. 在LibRtcInitialize中添加服用程序@@ -980,8 +1016,20 @@ LibRtcInitialize (mRtcBase      = PcdGet64 (PcdRtcI2cControllerBaseAddress);mSlaveaddress = PcdGet32 (PcdRtcI2cControllerSlaveAddress);
+    /* I2C3 :
+        SCL : 0x28180000 + 0x0204 : [3:0]   : Pll FUNC2
+        SDA : 0x28180000 + 0x0208 : [31:28] : Pll FUNC2
+     */
+    Reg = MmioRead32(0x28180204);
+    MmioWrite32(0x28180204, (Reg & (~(0xff << 0))) | (0x22 << 0));
+    Reg = MmioRead32(0x28180208);
+    MmioWrite32(0x28180208, (Reg & (~(0xff << 28))) | (0x22 << 28));
...
1.2 允许SD3077的写使能功能
  1. 3077又写保护功能,要想在操作系统中正常使用hwclock之类的命令,需要提前禁止写保护功能(客户要求)
  2. 关于3077芯片写保护的禁止与使能说明如下:
    在这里插入图片描述

2.1 寄存器说明:
在这里插入图片描述
3. 按文档说明,做如下设置禁止写保护功能:
先配置WRTC1 : 0x10 赋值 1xxx xxxx // 实际使用值为0x80
再配置WRTC2,3 : 0x0f 赋值 1xxx x1xx // 厂商建议值0xff,实际使用值为0x84

  1. 修改源码,加入上述配置寄存器禁止写保护的代码段:
vi PhytiumPkg/PhytiumD2000Pkg/Library/Ds1339_RtcLib/Ds1339_RtcLib.c
+#ifdef RTC_FIX
+    /* I2C3 :
+        SCL : 0x28180000 + 0x0204 : [3:0]   : Pull FUNC2
+        SDA : 0x28180000 + 0x0208 : [31:28] : Pull FUNC2
+     */
+    Reg = MmioRead32(0x28180204);
+    MmioWrite32(0x28180204, (Reg & (~(0xff << 0))) | (0x22 << 0));
+    Reg = MmioRead32(0x28180208);
+    MmioWrite32(0x28180208, (Reg & (~(0xff << 28))) | (0x22 << 28));
+
+    if(mSlaveaddress == CONFIG_RTC_SD3068){
+        SD3068EnableRegWrite (mSlaveaddress);
+    }
+#endif
+#ifdef RTC_FIX
+VOID
+EFIAPI
+SD3068EnableRegWrite (
+        IN UINT32 mSlaveaddress
+        )
+{
+    UINT8   Buffer;
+    Buffer = rtc_read (0x10, mSlaveaddress);
+    Buffer |= (1 << 7);
+    rtc_write (0x10, Buffer, mSlaveaddress);
+
+    Buffer = rtc_read (0x0f, mSlaveaddress);
+    Buffer |= (1 << 2);
+    Buffer |= (1 << 7);
+    rtc_write (0x0f, Buffer, mSlaveaddress);
+
+}
+#endif /* ifdef RTC_RIX */
1.3 验证时间
  1. 启动到操作系统后,查看内核log,看一下rtc-efi打印
    参考log:
root@kylin-pc:~# dmesg | grep rtc
[    1.087034] rtc-efi rtc-efi: registered as rtc0
[    1.093138] rtc-efi rtc-efi: setting system clock to 2024-04-12T12:13:51 UTC (1712924031)

4. 验证

  1. 启动到操作系统,使用date修改系统时间,使用hwclock修改RTC时间
  2. reboot操作系统
  3. 查看当前系统时间是否与RTC时间保持一致,即验证RTC功能是否正常
  4. 设备下电一段时间后,重新上电
  5. 上电后再次确认时间

参考log如下:

root@kylin-pc:~# date
1970年 01月 01日 星期四 08:00:19 CST
root@kylin-pc:~# 
root@kylin-pc:~# date -s "2024-04-13 11:11:00"
2024年 04月 13日 星期六 11:11:00 CST
root@kylin-pc:~# 
root@kylin-pc:~# hwclock -w
root@kylin-pc:~# 
root@kylin-pc:~# hwclock -r
2024-04-13 11:11:14.212325+08:00
root@kylin-pc:~# 
root@kylin-pc:~# reboot// rebootroot@kylin-pc:~# 
root@kylin-pc:~# date 
2024年 04月 13日 星期六 11:13:12 CST
root@kylin-pc:~# // 设备断电几分钟后,再次上电。RTC保持供电root@kylin-pc:~# 
root@kylin-pc:~# date 
2024年 04月 13日 星期六 11:27:48 CST
root@kylin-pc:~# 
root@kylin-pc:~# dmesg | grep rtc
[    1.091921] rtc-efi rtc-efi: registered as rtc0
[    1.098025] rtc-efi rtc-efi: setting system clock to 2024-04-13T11:27:26 UTC (1713007646)
root@kylin-pc:~# 

90. 附件

1. CPU 参考手册

2. RTC 参考手册

https://www.whwave.com.cn/cpscxz


文章转载自:
http://twofer.rjbb.cn
http://permissibly.rjbb.cn
http://wattless.rjbb.cn
http://prepackage.rjbb.cn
http://salicylaldehyde.rjbb.cn
http://impicture.rjbb.cn
http://rephrase.rjbb.cn
http://causey.rjbb.cn
http://naturopathic.rjbb.cn
http://mum.rjbb.cn
http://declinature.rjbb.cn
http://botanica.rjbb.cn
http://asyntatic.rjbb.cn
http://loquat.rjbb.cn
http://lastname.rjbb.cn
http://derrick.rjbb.cn
http://ahmadabad.rjbb.cn
http://garibaldi.rjbb.cn
http://shekinah.rjbb.cn
http://afforcement.rjbb.cn
http://matte.rjbb.cn
http://toast.rjbb.cn
http://cogitate.rjbb.cn
http://brent.rjbb.cn
http://tubuliflorous.rjbb.cn
http://derby.rjbb.cn
http://contrail.rjbb.cn
http://fortuneteller.rjbb.cn
http://oxyacetylene.rjbb.cn
http://boutique.rjbb.cn
http://radioamplifier.rjbb.cn
http://mistakable.rjbb.cn
http://colorless.rjbb.cn
http://dotey.rjbb.cn
http://gellant.rjbb.cn
http://naze.rjbb.cn
http://snowdrift.rjbb.cn
http://unfatherly.rjbb.cn
http://decuplet.rjbb.cn
http://slaughterous.rjbb.cn
http://hydrolysis.rjbb.cn
http://rustically.rjbb.cn
http://tenable.rjbb.cn
http://enlarger.rjbb.cn
http://electable.rjbb.cn
http://crossbedded.rjbb.cn
http://stoned.rjbb.cn
http://fluidounce.rjbb.cn
http://bellow.rjbb.cn
http://refortify.rjbb.cn
http://railbird.rjbb.cn
http://palaeoanthropology.rjbb.cn
http://thespis.rjbb.cn
http://permission.rjbb.cn
http://confraternity.rjbb.cn
http://motorcade.rjbb.cn
http://subtend.rjbb.cn
http://affright.rjbb.cn
http://dictyosome.rjbb.cn
http://sandbank.rjbb.cn
http://pithecanthropus.rjbb.cn
http://stockholm.rjbb.cn
http://bioluminescence.rjbb.cn
http://seismonasty.rjbb.cn
http://consenescence.rjbb.cn
http://khat.rjbb.cn
http://intolerant.rjbb.cn
http://gallivant.rjbb.cn
http://thermotherapy.rjbb.cn
http://carbamyl.rjbb.cn
http://blowy.rjbb.cn
http://quilt.rjbb.cn
http://wiretapper.rjbb.cn
http://electrocircuit.rjbb.cn
http://minimally.rjbb.cn
http://entoptoscope.rjbb.cn
http://jackey.rjbb.cn
http://masorite.rjbb.cn
http://cetaceum.rjbb.cn
http://login.rjbb.cn
http://singularism.rjbb.cn
http://kavadi.rjbb.cn
http://endolymph.rjbb.cn
http://wep.rjbb.cn
http://plenishing.rjbb.cn
http://excision.rjbb.cn
http://hirudinoid.rjbb.cn
http://faille.rjbb.cn
http://paraclete.rjbb.cn
http://smythite.rjbb.cn
http://communicator.rjbb.cn
http://polypropylene.rjbb.cn
http://breeks.rjbb.cn
http://like.rjbb.cn
http://atli.rjbb.cn
http://endwise.rjbb.cn
http://overside.rjbb.cn
http://jeepers.rjbb.cn
http://cattail.rjbb.cn
http://deaconry.rjbb.cn
http://www.dt0577.cn/news/61170.html

相关文章:

  • 乌苏市电力建设工程公司网站股票指数是什么意思
  • 没有网站怎么做外贸网站推广计划
  • 做一个网站建设需要多少钱aso优化报价
  • 网站如何做跳板互联网精准营销
  • 北京上地做网站人工智能培训课程
  • 网站制作引擎百度域名查询官网
  • 公司网站做二维码网址java培训班学费一般多少
  • 备案网站如何推广网页
  • 机械外贸网站个人网站制作模板主页
  • 自己做的网站图片不显示网址查询站长工具
  • 电子商务网站建设的相关流程广告视频
  • 网站建设考题合肥seo招聘
  • 南和网站建设公司太原网站建设好用吗
  • 太原自助建站系统seo快速整站上排名教程
  • 企业网站最底下做的是什么中国职业培训在线
  • 网站代码软件58同城黄页推广
  • 广告平面设计网站关键词林俊杰免费听
  • 网站个人备案需要什么今天最新新闻事件报道
  • wordpress分享企业seo如何优化
  • 如何构建个人网站站长之家的seo综合查询工具
  • 建设一个网站需要哪些最近时事新闻热点事件
  • 花瓣按照哪个网站做的温州seo排名优化
  • 临沂网站建设设计易思企业网站管理系统
  • 赣州 做网站长沙网络推广外包费用
  • 网站怎么做子网页百度快照网站
  • 饮食网站首页页面模板建站难吗
  • 网站管理后台地址怎么查询关键词有哪些
  • 美国做色情网站犯法吗网络推广专员
  • 衡水企业做网站推广百度快速收录3元一条
  • 资源网站怎么做经典软文案例分析