范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

摄像头ov13850移植笔记

  大家好,我是Peter,除了内核外,后面会持续增加驱动的内容。今天推荐一篇。
  0、环境soc : rk3568
  board: EVB1-DDR4-V10
  软 件:Android 11
  Linux:4.19.232
  一、ov13850简介1. 产品参数
  品牌:Omnivision
  型号:CMK-OV13850
  接口:MIPI
  像素:1320W
  OV13850彩色图像传感器是一款低电压、高性能1/3.06英寸1320万像素CMOS图像传感器,使用OmniBSI+?技术提供了单-1320万像素(4224×3136)摄像头的功能。通过串行摄像头控制总线(SCCB)接口的控制,它提供了全帧、下采样、开窗的10位MIPI图像。
  OV13850拥有一个能够在10位1320万像素分辨率下以每秒24帧(fps)的速度运行的图像阵列,用户可以完全控制图像质量、格式和输出数据传输。所有需要的图像处理功能,包括曝光控制、白平衡、缺陷像素消除等,都可以通过SCCB接口进行编程。
  此外,OmniBSI图像传感器使用专有的传感器技术,通过减少或消除固定图案噪声、污迹等常见的图像污染光源来提高图像质量,从而产生干净、完全稳定的彩色图像。
  为了提供定制信息,OV13850包括一个单编程(OPT)存储器。OV13850拥有最多4车道的MIPI接口。
  OV13850适用于低功耗相机模块。
  以下是测试用的摄像头&扩展板:
  2. 特性
  ●镜头尺寸:1/3.06英寸 ●像素大小:1.12毫米×1.12毫米 ●31.2°CRA为6mm z高度 ●可编程控制帧速率,镜像和翻转,裁剪和窗口 ●1320万像素AT30fps ●双线串行总线控制(SCCB) ●闪光灯输出控制闪光 ●支持输出格式:10位RAW RGB ●支持图像大小:13.2MP(4224×3136)、10MP(4224×2376)、4K2K(3840×2160)、EIS 1080P(2112×1188)、EIS 720P(1408×792)、more3 ●支持2×2 Binning ●可达4车道MIPI串行输出接口 ●标准系列SCCB接口 ●8k bit的嵌入式一次性可编程(OTP)存储器(见侧注) ●两个片上锁相环(PLLs) ●可编程控制:增益、曝光、帧率、图像大水、水平反射镜、垂直翻转裁剪和平移 ●内置温度传感器 ●图像质量控制:缺陷校正,自动黑电平校准,镜头阴影校正,和高度计行HDR。●保证传感器结温:-300C到+850C ●电源核心:1.14V-1.26V;模拟:2.6-3.0V输入/输出:1.7-3.0V ●封装:PLCC40
  3. ov13850引脚图
  4. ov13850功能模块
  定时脉冲发生器输出时钟来访问成像阵列的行,预先填充电荷并且按顺序对数组的行进行采样。
  在预先填充电荷和采样的时间间隔内,每个像素点的电荷曝光时减少入射光。
  这是在滚动快门的体系结构的曝光时间。
  曝光时间通过调整预先填充电荷和采样之间的时间间隔控制。
  在每一行的像素数据采样后,通过模拟电路(AMP)进一步处理:纠正偏移量和将数据乘以相应的增益。
  模拟处理后通过10位ADC的输出数组中的每个像素的数据。
  ISP(image sensor processor)通过图像输出接口单元,经过mipi接口(MCP/MDP)将图像数据发送出去。
  5. 像素数组
  OV13850传感器的图像数组4256列3152行(13414912像素)
  颜色过滤器是安排在Bayer模式
  Binning mode 2x2 binning
  Binning mode 通常用于低分辨率
  6. mirror 和 flip
  OV13850提供图像mirror(左右翻转) 和 flip(上下翻转)模式
  二、驱动移植
  瑞芯微支持的摄像头,有个support list,
  此次从该list中选择了ov13850
  1. 驱动源文件及对应脚本
  默认sdk里面已经将支持的所有摄像头驱动都添加到了内核,所以不需要移植该驱动了,
  但是还是要确认下移植驱动对应的一些信息
  源程序rk_android11.0_sdk_220718kerneldriversmediai2cov13850.c
  rk_android11.0_sdk_220718kernelincludeconfigvideoov13850.h
  kernel/drivers/media/i2c/Makefile115 obj-$(CONFIG_VIDEO_OV13850) += ov13850.o
  kernel/drivers/media/i2c/Kconfig1282 config VIDEO_OV13850
  1283 tristate "OmniVision OV13850 sensor support"
  1284 depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
  1285 depends on MEDIA_CAMERA_SUPPORT
  1286 select V4L2_FWNODE
  1287 ---help---
  1288 This is a Video4Linux2 sensor driver for the OmniVision
  1289 OV13850 camera.
  驱动对应的宏开关
  kernel/arch/arm64/configs/rockchip_defconfig581 CONFIG_VIDEO_OV13850=y
  2. 设备树1)典型ov系列摄像头链接示意图
  ov系列摄像头与SOC连接的主要的引脚有:i2c、rst、pwdn、mclk、MIPI Clk、MIPI DATA
  这几根线是驱动工程师必须捋清楚的
  2)电路图
  本次我们直接将摄像头插在公版的视频接口,用的是通道0,使用了4个lane【不知道具体硬件信息就问硬件工程师】
  由电路图可知,几个关键引脚关系:
  reset信号:GPIO3 B6
  power down信号:GPIO4 B4
  I2C通道:4
  clock:cif
  3)设备树节点
  参考sdk中其他平台的ov13850节点来填写kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
  ov13850: ov13850@10 {
  status = "okay";
  compatible = "ovti,ov13850";
  reg = <0x10>;
  clocks = <&cru CLK_CIF_OUT>;
  clock-names = "xvclk";
  power-domains = <&power RK3568_PD_VI>;
  pinctrl-names = "default";
  pinctrl-0 = <&cif_clk>;
  reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;
  pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
  rockchip,camera-module-index = <0>;
  rockchip,camera-module-facing = "back";
  rockchip,camera-module-name = "ZC-OV13850R2A-V1";
  rockchip,camera-module-lens-name = "Largan-50064B31";
  port {
  ov13850_out: endpoint {
  remote-endpoint = <&mipi_in_ucam0>;
  data-lanes = <1 2 3 4>;
  };
  };
  };
  114 &csi2_dphy0 {
  115 status = "okay";
  116
  117 ports {   118 #address-cells = <1>;   119 #size-cells = <0>;   120 port@0 {   121 reg = <0>;   122 #address-cells = <1>;   123 #size-cells = <0>;   124
  125 mipi_in_ucam0: endpoint@1 {   126 reg = <1>;   127 remote-endpoint = <&ov13850_out>;   128 data-lanes = <1 2 3 4>;   129 };   ……   152 };   设备树的信息最终转换成i2c_client,并传递给ov13850驱动ov13850_probecompatible = "ovti,ov13850";与驱动的of_match_table 保持一致@rk_android11.0_sdkkerneldriversmediai2cov13850.c   #if IS_ENABLED(CONFIG_OF)   static const struct of_device_id ov13850_of_match = {   { .compatible = "ovti,ov13850" },   {},   };   MODULE_DEVICE_TABLE(of, ov13850_of_match);   #endif   static const struct i2c_device_id ov13850_match_id = {   { "ovti,ov13850", 0 },   { },   };   static struct i2c_driver ov13850_i2c_driver = {   .driver = {   .name = OV13850_NAME,   .pm = &ov13850_pm_ops,   .of_match_table = of_match_ptr(ov13850_of_match),   },   .probe = &ov13850_probe,   .remove = &ov13850_remove,   .id_table = ov13850_match_id,   };   关于摄像头驱动,   彭老师后面会继续更一篇文章讲解。   3. 安卓配置文件   在以下两个文件增加对应摄像头信息,hardware/rockchip/camera/etc/camera/camera3_profiles_rk356x.xml   hardware/rockchip/camera/etc/camera/camera3_profiles.xml   一口君直接参考的其他文件,   然后找一个相近型号的摄像头修改的   三、查看摄像头相关信息1. 开机log   移植成功后,确认下对应的驱动log10-26 17:58:54.659 0 0 I ov13850 4-0010: driver version: 00.01.05   10-26 17:58:54.659 0 0 W ov13850 4-0010: Failed to get power-gpios, maybe no use   10-26 17:58:54.659 0 0 W ov13850 4-0010: 4-0010 supply avdd not found, using dummy regulator   10-26 17:58:54.659 0 0 I ov13850 4-0010: Linked as a consumer to regulator.0   10-26 17:58:54.659 0 0 W ov13850 4-0010: 4-0010 supply dovdd not found, using dummy regulator   10-26 17:58:54.659 0 0 W ov13850 4-0010: 4-0010 supply dvdd not found, using dummy regulator   10-26 17:58:54.660 0 0 E ov13850 4-0010: could not get default pinstate   10-26 17:58:54.660 0 0 E ov13850 4-0010: could not get sleep pinstate   10-26 17:58:54.665 0 0 I ov13850 4-0010: Detected OV00d850 sensor, REVISION 0xb2   10-26 17:58:54.665 0 0 I rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_ov13850 4-0010:bus type 4   2. 查看ov13850设备   驱动加载成功后,会有以下信息   查看摄像头设备节点:rk3568_r:/ # ls /dev/video* -l   ls /dev/video* -l   crw-rw---- 1 media camera 81, 0 2022-10-31 06:56 /dev/video0   crw-rw---- 1 media camera 81, 1 2022-10-31 06:56 /dev/video1   crw-rw---- 1 media camera 81, 2 2022-10-31 06:56 /dev/video2   crw-rw---- 1 media camera 81, 3 2022-10-31 06:56 /dev/video3   crw-rw---- 1 media camera 81, 4 2022-10-31 06:56 /dev/video4   crw-rw---- 1 media camera 81, 5 2022-10-31 06:56 /dev/video5   crw-rw---- 1 media camera 81, 6 2022-10-31 06:56 /dev/video6   crw-rw---- 1 media camera 81, 7 2022-10-31 06:56 /dev/video7   crw-rw---- 1 media camera 81, 8 2022-10-31 06:56 /dev/video8   3. 查看sys文件系统中文件信息   内核会为摄像头在目录/sys/class/video4linux下分配设备信息描述文件rk3568_r:/ # grep ov13850 /sys/class/video4linux/v*/name   grep ov13850 /sys/class/video4linux/v*/name   /sys/class/video4linux/v4l-subdev3/name:m00_b_ov13850 4-0010   rk3568_r:/ # grep "" /sys/class/video4linux/v*/name | grep mainpath   grep "" /sys/class/video4linux/v*/name | grep mainpath   /sys/class/video4linux/video0/name:rkisp_mainpath   4. 查看拓扑 media-ctl -d /dev/media0 -prk3568_r:/ # media-ctl -d /dev/media0 -p   media-ctl -d /dev/media0 -p   Opening media device /dev/media0   Enumerating entities   Found 13 entities   Enumerating pads and links   Media controller API version 0.0.255   Media device information   ------------------------   driver rkisp-vir0   model rkisp0   serial   bus info   hw revision 0x0   driver version 0.0.255   Device topology   - entity 1: rkisp-isp-subdev (4 pads, 7 links)   type V4L2 subdev subtype Unknown   device node name /dev/v4l-subdev0   pad0: Sink   [fmt:SBGGR10/4224x3136   crop.bounds:(0,0)/4096x3072   crop:(0,0)/4096x3072]   <- "rkisp-csi-subdev":1   <- "rkisp_rawrd0_m":0   <- "rkisp_rawrd2_s":0   pad1: Sink   <- "rkisp-input-params":0   pad2: Source   [fmt:YUYV2X8/4096x3072   crop.bounds:(0,0)/4096x3072   crop:(0,0)/4096x3072]   -> "rkisp_mainpath":0   -> "rkisp_selfpath":0   pad3: Source   -> "rkisp-statistics":0   - entity 6: rkisp-csi-subdev (6 pads, 5 links)   type V4L2 subdev subtype Unknown   device node name /dev/v4l-subdev1   pad0: Sink   <- "rockchip-csi2-dphy0":1   pad1: Source   -> "rkisp-isp-subdev":0   pad2: Source   -> "rkisp_rawwr0":0   pad3: Source   pad4: Source   -> "rkisp_rawwr2":0   pad5: Source   -> "rkisp_rawwr3":0   - entity 13: rkisp_mainpath (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video0   pad0: Sink   <- "rkisp-isp-subdev":2   - entity 19: rkisp_selfpath (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video1   pad0: Sink   <- "rkisp-isp-subdev":2   - entity 25: rkisp_rawwr0 (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video2   pad0: Sink   <- "rkisp-csi-subdev":2   - entity 31: rkisp_rawwr2 (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video3   pad0: Sink   <- "rkisp-csi-subdev":4   - entity 37: rkisp_rawwr3 (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video4   pad0: Sink   <- "rkisp-csi-subdev":5   - entity 43: rkisp_rawrd0_m (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video5   pad0: Source   -> "rkisp-isp-subdev":0   - entity 49: rkisp_rawrd2_s (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video6   pad0: Source   -> "rkisp-isp-subdev":0   - entity 55: rkisp-statistics (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video7   pad0: Sink   <- "rkisp-isp-subdev":3   - entity 61: rkisp-input-params (1 pad, 1 link)   type Node subtype V4L   device node name /dev/video8   pad0: Source   -> "rkisp-isp-subdev":1   - entity 67: rockchip-csi2-dphy0 (2 pads, 2 links)   type V4L2 subdev subtype Unknown   device node name /dev/v4l-subdev2   pad0: Sink   <- "m00_b_ov13850 4-0010":0   pad1: Source   -> "rkisp-csi-subdev":0   - entity 70: m00_b_ov13850 4-0010 (1 pad, 1 link)   type V4L2 subdev subtype Sensor   device node name /dev/v4l-subdev3   pad0: Source   [fmt:SBGGR10/4224x3136]   -> "rockchip-csi2-dphy0":0   从entity70信息中可以看到:   该Entity完整的名称是:m00_b_ov13850 4-0010   它是一个V4L2 subdev(Sub-Device) Sensor   它对应的节点是/dev/v4l-subdev3,应用程序(如v4l2-ctl)可以打开它,并进行配置   它仅有一个输出(Source)节点,记为pad0   它的输出格式是[fmt:SBGGR10/4224x3136],其中SBGGR10是一种mbus-code的简称   它的Source pad0 链接到"rockchip-csi2-dphy0"的pad0,并且当前的状态是 ENABLED。   三、拍照测试1. 抓帧rk3568_r:/ # v4l2-ctl -d /dev/video0 --set-fmt-video=width=800,height=600,pixelformat=NV12 --stream-mmap=3 --stream-to=/sdcard/out.yuv --stream-skip=9 --stream-count=1   m-mmap=3 --stream-to=/sdcard/out.yuv --stream-skip=9 --stream-count=1 <   <<<<<<<<< 7.51 fps   <   【看到<<<<<<<<< 7.51 fps 说明成功】   参数说明-d: 摄像头对应设备文件   --set-fmt-video:指定了宽高及pxielformat(用FourCC表示)。NV12即用FourCC表示的pixelformat   --stream-mmap:指定buffer的类型为mmap,即由kernel分配的物理连续的或经过iommu映射的buffer   --stream-to:指定帧数据保存的文件路径   --stream-skip:指定丢弃(不保存到文件)前3帧   --stream-count:指定抓取的帧数,不包括--stream-skip丢弃的数量   其他参数   --set-selection,指定对输入图像进行裁剪。特别是当RKISP1的前级大小发生变化时要保证selection不大于前级输出大小。RKCIF的裁剪则是通过--set-crop参数设置的   --stream-poll,该选项指示v4l2-ctl采用异步IO,即在dqbuf前先用select等等帧数据完成,从而保证dqbuf不阻塞。否则dqbuf将会阻塞直到有数据帧到来   2. 显示图片:   将文件**/sdcard/out.yuv从板子通过adb pull**命令拷贝出来,运行于windows下:   adb pull /sdcard/out.yuv   再拷贝到ubuntu中,执行以下命令显示图片【用其他可以打开yuv格式图片的工具也可以】ffplay out.yuv -f rawvideo -pixel_format nv12 -video_size 800x600   【拍照时选择其他较高分辨率会出错,暂时还没解决这个问题,有知道的可以联系我:yikoupeng】   四、参数设置1. 显示摄像头参数   显示摄像头参数rk3568_r:/ # v4l2-ctl -d /dev/video0 -l   v4l2-ctl -d /dev/video0 -l   User Controls   exposure 0x00980911 (int) : min=4 max=3324 step=1 default=1536 value=1536   Image Source Controls   vertical_blanking 0x009e0901 (int) : min=192 max=29631 step=1 default=192 value=192   horizontal_blanking 0x009e0902 (int) : min=576 max=576 step=1 default=576 value=576 flags=read-only   analogue_gain 0x009e0903 (int) : min=16 max=248 step=1 default=16 value=16   Image Processing Controls   link_frequency 0x009f0901 (intmenu): min=0 max=0 default=0 value=0 flags=read-only   pixel_rate 0x009f0902 (int64) : min=0 max=120000000 step=1 default=120000000 value=120000000 flags=read-only   test_pattern 0x009f0903 (menu) : min=0 max=4 default=0 value=0   2. 增加曝光exposure   exposure值区间为: 4-3324 命令实例:v4l2-ctl -d /dev/video0 --set-ctrl exposure=3324   3. 增加图片亮度analogue_gain   analogue_gain用于设置显示的图像的亮度   analogue_gain值区间:16-248   命令实例:v4l2-ctl -d /dev/video0 --set-ctrl analogue_gain=240   analogue_gain=16现象   analogue_gain=244现象【效果非常明显】   4. 测试显示信息test_pattern   参数test_pattern,可以用于测试显示图像   0:摄像头   1-3 测试图片 命令实例:v4l2-ctl -d /dev/video0 --set-ctrl test_pattern=0   test_pattern = 1   test_pattern = 2   test_pattern = 3   5. 修改Entity的format、size   举例一,GC2053摄像头支持多个分辨率的输出,默认为1920x1080。现将输出分辨率改为640x480:media-ctl -d/dev/media0 --set-v4l2" "m00_b_ov13850 4-0010":0[fmt:SBGGR10//640x480]"   修改GC2053输出后,rkisp-isp-subdev的大小及video device crop也相应要修改。因为后级的大小不能大于前级的大小。~/>$ media-ctl -d/dev/media0 --set-v4l2 " "rkisp-isp-subdev":0[fmt:SBGGR10/640x480]"   ~/>$ media-ctl -d/dev/media0 --set-v4l2 " "rkisp-isp-subdev":0[crop: (0, 0)/640x480]"   ~/>$ media-ctl -d/dev/media0 --set-v4l2 " "rkisp-isp-subdev":2[crop: (0, 0)/640x480]"   ~/>$ v4l2-ctl -d/dev/video0   --set-selection=target=crop, top=0, left=0, width=640, height=480   五、遇到问题解决1. 解决闪退   主要是camera3_profiles_rk356x.xml和camera3_profiles.xml这两个文件中没有ov13850的信息   所以找到这两个文件,增加相对应的摄像头信息 改文件位于sdk的目录如下:hardware/rockchip/camera/etc/camera/   内容比较多,只贴出我修改那一段 【我将其他摄像头都删除了】                                    …………      文件camera3_profiles.xml参数的说明,瑞芯微官方有相应的说明文档   2. app 提示没有权限连接&打开设备失败10-24 15:20:15.535 1668 1668 D CAM_Camera2OneCamMgr: Getting First BACK Camera   10-24 15:20:15.535 1668 1668 I CameraManagerGlobal: Connecting to camera service   10-24 15:20:15.539 346 346 W ServiceManager: Permission failure: android.permission.CAMERA_OPEN_CLOSE_LISTENER from uid=10090 pid=1668   10-24 15:20:15.542 1668 1668 D CAM_Camera2OneCamMgr: Getting First FRONT Camera   10-24 15:20:15.543 1668 1668 W CAM_Camera2OneCamMgr: No front-facing camera found,try to find external facing camera.   10-24 15:20:15.544 1668 1668 W CAM_Camera2OneCamMgr: No external camera found.   该log位于以下文件./packages/apps/Camera2/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java:172   修改文件packages/apps/Camera2/AndroidManifest.xml   增加下面两处,会解决连接ManagerService 错误问题   android:sharedUserId="android.uid.system"   同时将设备树文件 将mipi_in_ucam0里的reg修改为1,如果有其他摄像头信息,一次往后填写或者删除。114 &csi2_dphy0 {   115 status = "okay";   116
  117 ports {   118 #address-cells = <1>;   119 #size-cells = <0>;   120 port@0 {   121 reg = <0>;   122 #address-cells = <1>;   123 #size-cells = <0>;   124
  125 mipi_in_ucam0: endpoint@1 {   126 reg = <1>;   127 remote-endpoint = <&ov13850_out>;   128 data-lanes = <1 2 3 4>;   129 };   ……   【这个reg是什么意思,有知道的老铁可以给我留言】   3. APP打开设备失败   从log看,没有任何permission问题,摄像头也打开了,但是就是连接失败,主要是xml文件的sensorType 设置不对hardware/rockchip/camera/etc/camera/camera3_profiles_rk356x.xml   hardware/rockchip/camera/etc/camera/camera3_profiles.xml   找到这两个文件下面的值   修改为   六、后续   后面还会持续更新驱动相关的内容,感兴趣的朋友关注我。

上海至武汉游轮8天7晚,2023年最新行程及航期出炉你好,我是星辰,这里是游轮旅游Travel。你最后一次乘坐上海至武汉的轮船是哪一年?是上个世纪七八十年代,还是20多年前?2001年,上海至武汉的客轮停运,从那以后从上海去武汉只能在武汉美景里走一走,集齐了好多宝藏农庄周末啦,准备好出去透透气了吗?不追城市里的热门,也不赶时间,放慢步调,去郊野农庄悠闲地遛个弯。在碧波微漾的湖畔,钓一份清闲与自在。在淳朴自然的农家小院,尝一口记忆里的风味。快乐变得116岁的车站路,是武汉最有生活气息的美食街漫步于中山大道,会路过周边诸多的老街老巷,这些历史久远的街巷,好似璀璨的明珠,见证着城市的发展,车站路,便是其中之一。它起于汉口沿江大道,穿过洞庭街胜利街岳飞街中山大道友益街,止于江夏,武汉人最该去旅游的地方东临鄂州大冶南枕咸宁嘉鱼,江夏是北纬三十度特别的存在。如何绘出江夏之美?执笔湖与山。以原古生界为基底,自震旦纪以来,6亿年的沉积赋予了江夏衍发育良好的地层,也造就了群山如虹碧水长青唏嘘!广州双雄保级翻身受阻,武汉双雄赢球再现赛季齐头并进之势中超第24轮战罢,有人欢喜有人愁!三镇击败国安重返榜首,6分之战,武汉长江取胜广州城,终结11轮不败颓势。广州队与广州城同病相怜抢分希望落空,想要脱离降级区难度再度增加。从输给成都女足联赛江苏女足暂居第二冠军武汉遭遇首败新华社昆明11月9日电(记者岳冉冉)9日,2022年中国足协女超联赛第15轮在昆明海埂体育训练基地战罢。提前四轮夺冠的武汉车谷江大女足遭遇首败,12不敌长春九银租赁女足江苏无锡女足武当山下紫霄宫,三件宝物镇宫殿,五百年沧桑彰显华夏文化我要上条定格美好瞬间摄影团说走就走的旅行紫霄宫,又名太元紫霄宫,明代建筑,是武当山敕建九大宫观之一,位于武当山展旗峰下,明永乐皇帝封它为紫霄福地。宫内共有建筑29栋,对称布局,中轴西施故里究竟是诸暨还是临浦?探访萧山临浦西施文化公园临浦有一个西施文化公园(摄影钰林)位于杭州萧山区临浦镇的西施文化公园中国古代四大美女之首的西施故里究竟在何方?以前,我们都十分肯定,当然是在浙江诸暨,那里有挺有规模的西施故里景区。红色文化,国缘V3的精气神随着全国消费市场的回暖,在南京在江苏在全国都刮起了一股国缘V3的旋风,超越时代,成就未来的理念与城市精英产生强烈共鸣。探究国缘V3热销的密码红色文化诠释成大事,必有缘的品牌主张绿色胡适之妻江冬秀被嘲没文化,历经丈夫背叛,张爱玲却称其幸福欢迎关注丁丁的慢时光文丁丁民国有七大怪事,其中之一就是胡适的婚事。这是怎么一回事呢?作为中国最具影响的思想家文学家哲学家新文化运动的倡导者的胡适,却屈从于包办婚姻,娶了一个没什么文白酒成都产区如何实现高质量发展?找准优势文化建设标准化体系建设等是关键每经记者范芊芊每经编辑杨夏11月9日,由中国酒业协会指导,四川省经信厅支持,四川中国白酒金三角协会主办水井坊承办的白酒成都产区高质量发展峰会在成都举行。随着多年的发展,白酒成都产区
SKP来了,成都2022新开商业体也到了交卷时刻今日(12月20日),位于成都交子金融商圈的SKP项目开启试营业,正式对公众开放。作为成都交子金融商圈引入的首个高端百货业态,成都SKP落址以来一直备受关注。该项目为亚洲最大的下沉三方交易即将出炉首轮乐透签贝尔坦斯!戈登有望心如所愿时间,能带来希望!同时,时间能带来更大的失望,制造更大的痛苦!NBA联盟近期有两个十分重要的时间节点,就是这样的A北京时间12月15日,今年夏天在自由市场签约的球员,可以在这一天用2022公园城市银杏观赏线路发布!一起定格成都岁末的黄金时刻封面新闻记者于婷又到一年满城金黄,每年此时,成都的街头都会被银杏烘托出一种独特的浪漫氛围。难得的冬日暖阳透过金黄色的银杏叶,在地上投射出斑驳的树影,从树下走过,就会听到属于银杏的沙本赛季NBA常规赛各单项技术之王,让你知道年轻人为什么这么强突破之王雷霆队老大亚历山大,每场24。5次突破得16。4分。(这个时代的德维恩韦德)单挑之王独行侠卢卡东契奇,每场8。1次一对一得9。3分。(像极了1720时期的詹姆斯哈登)转换进长安汽车产销量双降新能源主场之战几多胜算?知耻后勇,重拾王者荣耀!作者陈晚邻编辑李明达风品南辞明湘来源铑财铑财研究院160周年!长安汽车的2022年注定不寻常。喊出的口号亦响亮抢抓智能电动汽车新风口。只是新风口,又何尝不是中超3年首次3万席主场出炉,阻击三镇,蓉城首秀,双杀献礼泰山聚焦中超CBA,独一无二球迷媒体点击右上角关注,不会后悔的中超进入最后三轮的争夺,冠军与3个降级名额即将揭晓,每场都是生死战,也都决定着积分榜两端的走势,尤其是争冠格局,本轮,三镇奥运冠军李小鹏晒全家福!娇妻美艳女儿漂亮,一家4口令人羡慕近日,李小鹏一家四口在香港迪士尼乐园游玩,他们晒出了亲密的全家福,引起了很多粉丝的关注,李小鹏是中国体操队不可撼动的顶级选手,他在奥运会的舞台上取得了非常出色的成绩,帮助中国队多次历史性一刻第一枚15手猎鹰9号火箭诞生!34小时内三连射北京时间2022年12月18日5点32分30秒,SpaceX在肯尼迪航天中心发射了第66批54颗星链卫星,使用的火箭是猎鹰9号B1058。15,海上回收芯一级。这样的编号意味着,这告诉年轻人不管你是谁,老天一律公平对待。在这里没有运气的说法,没有运气,一律公平。你要问什么事情?我给你说,其实天下很多事情都是公平的,生活不顺利的时候,我们总会抱怨老天不公,为什么我的命运欧洲火箭发射失败,损失高达3。5亿美元!是技术不行了?开头据法新社21日报道,欧洲的新型织女星C火箭在当地时间20日夜间从法属圭亚那升空后不久就消失了。它载有两颗卫星,总造价高达3。5亿美元。这两颗卫星本来要加入一个现有网络,该网络能欧洲将很快面临无火箭可发射的囧况,织女星C发射失败已遭停飞VegaC发射失败北京时间2022年12月21日0947,欧空局使用VegaC(织女星C)三级固体运载火箭,在库鲁航天发射场ELV1工位发射了两枚由空中客车公司研制的高分辨率地球成