高通平台ramdump-parser 工具

高通平台ramdump-parse工具生成

  • 1. 获取GNU-TOOLS
    • aosp-caf 源码目录下:
    • 自行下载GNU-Tools:
  • 2. 获取ramdump-parser
    • aosp-caf 源码目录下:
    • 自行下载ramdump-parser:
  • 3. 修改linux-ramdump-parser-v2/local_settings.py
  • 4. 编写执行脚本
  • 5. 输出解析结果

1. 获取GNU-TOOLS

aosp-caf 源码目录下:

aosp-caf/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin目录下,
或者:
aosp-caf/out/.path 目录下:

aosp-caf/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin$ ls aarch64-linux-android
-*
aarch64-linux-android-addr2line  aarch64-linux-android-gcc-ar      aarch64-linux-android-ld       aarch64-linux-android-ranlib
aarch64-linux-android-ar         aarch64-linux-android-gcc-nm      aarch64-linux-android-ld.bfd   aarch64-linux-android-readelf
aarch64-linux-android-as         aarch64-linux-android-gcc-ranlib  aarch64-linux-android-ld.gold  aarch64-linux-android-size
aarch64-linux-android-c++filt    aarch64-linux-android-gcov        aarch64-linux-android-nm       aarch64-linux-android-strings
aarch64-linux-android-dwp        aarch64-linux-android-gcov-tool   aarch64-linux-android-objcopy  aarch64-linux-android-strip
aarch64-linux-android-elfedit    aarch64-linux-android-gprof       aarch64-linux-android-objdump

自行下载GNU-Tools:

git clone https://android-git.linaro.org/git/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9-linaro.git

或者通过Linaro Releases 下载 toolchain,请注意下载正确的对应版本

https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu/

2. 获取ramdump-parser

aosp-caf 源码目录下:

aosp-caf/vendor/qcom/opensource/tools/linux-ramdump-parser-v2

自行下载ramdump-parser:

git clone https://gitlab.com/Codeaurora/platform_vendor_qcom-opensource_tools.git
git clone https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/tools.git

3. 修改linux-ramdump-parser-v2/local_settings.py

参考以下内容修改:
将gdb,nm,objdump和ramdump解析工具放到下面路径中,需要区分32/64位.

import parser_util,os,sys
gdb_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb"
nm_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm"
objdump_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump"gdb64_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb"
nm64_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm"
objdump64_path = "/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdump"

4. 编写执行脚本

将gdb,nm,objdump和ramdump解析工具放到下面路径中,需要区分32/64位.

# ramdump-parser.sh#! /bin/bashecho ""
echo "Start ramdump parser.."local_path=$PWD
ramdump=$local_path/
vmlinux=$local_path/vmlinux
out=$local_path/outgdb=/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb
nm=/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm
objdump=/opt/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objdumpramparse_dir=~/tools/ramdump/tools/linux-ramdump-parser-v2
########################################################################################echo "cd $ramparse_dir"
cd $ramparse_dir
echo ""echo -e "python3 ramparse.py --force-hardware msmnile --auto-dump ./ -x -g $gdb -n $nm -j $objdump -v $vmlinux -o $out"
echo ""# python 3.5
python3 $ramparse --force-hardware msmnile --auto-dump ./ -x -g $gdb -n $nm -j $objdump -v $vmlinux -o $outcd $local_path
echo "out: $out"
echo ""
exit 0

5. 输出解析结果

将Ramdump + vmlinux文件放在同一级目录:

$ ls
CD_BTDDR.BIN  DCC_CFG.BIN   DDRCS1_0.BIN   FSM_CTRL.BIN  IPA_SEQ.BIN   MSGRAM11.BIN  MSGRAM2.BIN  MSGRAM8.BIN   PMIC_PON.BIN  smmu_s1_fault.txt
CD_BTIMM.BIN  DCC_SRAM.BIN  DDRCS1_1.BIN   FSM_STS.BIN   IPASHRAM.BIN  MSGRAM12.BIN  MSGRAM3.BIN  MSGRAM9.BIN   PMON_HIS.BIN  vmlinux
CD_SHIMM.BIN  DDRCS0_0.BIN  DDRCS1_2.BIN   IPA_GSI.BIN   IPA_SRAM.BIN  MSGRAM13.BIN  MSGRAM4.BIN  OCIMEM.BIN    rdp
CD_STRCT.BIN  DDRCS0_1.BIN  DDRCS1_3.BIN   IPA_HRAM.BIN  load.cmm      MSGRAM14.BIN  MSGRAM5.BIN  out           RST_STAT.BIN
CODERAM.BIN   DDRCS0_2.BIN  DDR_DATA.BIN   IPA_IU.BIN    MSGRAM0.BIN   MSGRAM15.BIN  MSGRAM6.BIN  PART_BIN.BIN  run.sh
DATARAM.BIN   DDRCS0_3.BIN  dump_info.txt  IPA_MBOX.BIN  MSGRAM10.BIN  MSGRAM1.BIN   MSGRAM7.BIN  PIMEM.BIN     SHRM_MEM.BIN

执行ramdump-parser.sh脚本:

Start ramdump parser..
/opt/linux-ramdump-parser-v2[1/66] --sched-info ... 1.996608s[2/66] --cbmem ... 0.066669s[3/66] --clock-dump ... 3.496971s[4/66] --print-svm-vcpu-ctx ... 0.000497s[5/66] --cpr3-info ... 0.080281s[6/66] --cpr-info ... 0.034651s[7/66] --cpu-state ... 0.015171s[8/66] --ddr-compare ... 2.181965s[9/66] --check-for-watchdog ... 0.024302s[10/66] --watchdog ... 3.379377s[11/66] --parse-debug-image ... 1.904012s[12/66] --dmesg ... 0.523119s[13/66] --dtb ... 0.012884s[14/66] --print-f2fs ... 2.409996s[15/66] --print-filetracking ... 229.818691s[16/66] --print-tasks ... 3.656492s[17/66] --print-tasks-timestamps ... 0.008771s[18/66] --check-for-panic ... 0.021907s[19/66] --hotplug ... 0.606848s[20/66] --hyp-log ... FAILED!  0.000963s[21/66] --print-iommu-pg-tables ... 28.634773s[22/66] --ipa ... 13.098149s[23/66] --ipc_logging ... 0.119332s[24/66] --print-irqs ... 1.744312s[25/66] --kbootlog ... 0.034949s[26/66] --print-kconfig ... 0.001530s[27/66] --l1-compare ... 0.000360s[28/66] --lockdep-heldlocks ... 0.000016s[29/66] --properties ... found process init 1.947400s[30/66] --logcat ... found process logdfound process init 1.229178s[31/66] --logcat-mini ... FAILED!  0.021597s[32/66] --logcat-v2 ... FAILED!  0.367746s[33/66] --print-zram ... 1.469001s[34/66] --lpm ... 6.359503s[35/66] --print-mdssinfo ... FAILED!  2.530681s[36/66] --print-memstat ... 0.290634s[37/66] --print-memory-info ... 1.025709s[38/66] --mmcdoctor ... 0.024299s[39/66] --modules_table ... FAILED!  0.533833s[40/66] --dump-page-tables ... 0.000180s[41/66] --print-pagealloccorruption ... 0.000016s[42/66] --print-pagetracking ... FAILED!  0.390792s[43/66] --print-pagetypeinfo ... 0.912549s[44/66] --pstore ... 0.000029s[45/66] --qrtr-ports ... 2.015823s[46/66] --regulator ... 6.260499s[47/66] --print-reserved-mem ... 0.413587s[48/66] --print-cma-areas ... 4.174209s[49/66] --print-softirq-stat ... 0.203490s[50/66] --print-qsee-log ... 0.337449s[51/66] --rm-log ... FAILED!  0.001325s[52/66] --check-rodata ... 0.110045s[53/66] --print-rtb ... 0.088392s[54/66] --print-runqueues ... 2.967548s[55/66] --smmu-s1-fault ... Unknown message disregarded, line says:         non-coherent table walkUnknown message disregarded, line says:         (IDR0.CTTW overridden by FW configuration)Unknown message disregarded, line says:         stream matching with 6 register groupsUnknown message disregarded, line says:         non-coherent table walkUnknown message disregarded, line says:         (IDR0.CTTW overridden by FW configuration)Unknown message disregarded, line says:         stream matching with 95 register groups0.089600s[56/66] --spm ... FAILED!  0.129877s[57/66] --thermal-info ... 3.124397s[58/66] --thermal-temp ... 0.044073s[59/66] --timer-list ... 1.348593s[60/66] --ubwcp ... 0.044256s[61/66] --uevent ... 1.204906s[62/66] --vm-minidump-sample ... FAILED!  0.001175s[63/66] --print-vmalloc ... 2.237236s[64/66] --print-vmstats ... 6.545621s[65/66] --wakeup ... 1.427594s[66/66] --print-workqueues ... 1.106207sout: /home/test/work/temp/Port_COM19/out

最终解析结果如下:

$ ls
anomalies.json                                                                                cprinfo.txt
arm_iommu_domain_00__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF96579C5000.txt                     DDRCacheCompare.txt
arm_iommu_domain_01__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9657A7F000.txt                     devicetree.dtb
arm_iommu_domain_02__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9699E8F000.txt                     dmesg_TZ.txt
arm_iommu_domain_03__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF966931D000.txt                     f2fs_info.txt
arm_iommu_domain_04__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF96A36DB000.txt                     fcm.bin
arm_iommu_domain_05__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9655A1D000.txt                     file_tracking.txt
arm_iommu_domain_06__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF967AF98000.txt                     hotplug.txt
arm_iommu_domain_07__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF967AFCF000.txt                     ipalog.txt
arm_iommu_domain_08_soc_qcom_msm_audio_apr_qcom_msm_audio_ion_0xFFFFFF9683926000.txt          ipc_logging
arm_iommu_domain_09__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF9686BBA000.txt                     kconfig.txt
arm_iommu_domain_10__qcom_msm_npu_0xFFFFFF9687534000.txt                                      kernel_boot_log.txt
arm_iommu_domain_11_aa_qcom_vidc_secure_pixel_cb_0xFFFFFF9687A84000.txt                       kva_output.txt
arm_iommu_domain_12_aa_qcom_vidc_secure_bitstream_cb_0xFFFFFF9687A81000.txt                   l1_cache.txt
arm_iommu_domain_13_aa_qcom_vidc_secure_non_pixel_cb_0xFFFFFF9687A7C000.txt                   launch_t32.sh
arm_iommu_domain_14_aa_qcom_vidc_non_secure_cb_0xFFFFFF9687A78000.txt                         logcat.bin
arm_iommu_domain_15_a_ssusb_0xFFFFFF9688871000.txt                                            lpm.txt
arm_iommu_domain_16___0xFFFFFF96888BA000.txt                                                  memory.txt
arm_iommu_domain_17___0xFFFFFF96888AD000.txt                                                  mem_stat.txt
arm_iommu_domain_18_a_ssusb_0xFFFFFF9688F01000.txt                                            modules_table.txt
arm_iommu_domain_19__c_qcom_qupv_geni_se_0xFFFFFF968967E000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x0
arm_iommu_domain_20_cc_qcom_qupv_geni_se_0xFFFFFF9689DF2000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x1
arm_iommu_domain_21_ac_qcom_qupv_geni_se_0xFFFFFF9689DEF000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x2
arm_iommu_domain_22__c_qcom_qupv_geni_se_0xFFFFFF968A9D4000.txt                               MSM_DUMP_DATA_L1_DATA_CACHE_0x3
arm_iommu_domain_23_soc_qcom_cam_smmu_msm_cam_smmu_ife_cp_0xFFFFFF968AD69000.txt              MSM_DUMP_DATA_L1_DATA_CACHE_0x4
arm_iommu_domain_24_soc_qcom_cam_smmu_msm_cam_smmu_lrme_0xFFFFFF968AD63000.txt                MSM_DUMP_DATA_L1_DATA_CACHE_0x5
arm_iommu_domain_25_soc_qcom_cam_smmu_msm_cam_smmu_fd_0xFFFFFF968AD60000.txt                  MSM_DUMP_DATA_L1_DATA_CACHE_0x6
arm_iommu_domain_26_soc_qcom_cam_smmu_msm_cam_smmu_cpas_cdm_0xFFFFFF968AD5A000.txt            MSM_DUMP_DATA_L1_DATA_CACHE_0x7
arm_iommu_domain_27_soc_qcom_cam_smmu_msm_cam_smmu_icp_0xFFFFFF968B49D000.txt                 MSM_DUMP_DATA_L1_INST_CACHE_0x0
arm_iommu_domain_28_soc_qcom_cam_smmu_msm_cam_smmu_jpeg_0xFFFFFF968BC47000.txt                MSM_DUMP_DATA_L1_INST_CACHE_0x1
arm_iommu_domain_29_soc_qcom_cam_smmu_msm_cam_smmu_ife_0xFFFFFF968BC42000.txt                 MSM_DUMP_DATA_L1_INST_CACHE_0x2
arm_iommu_domain_30_soc_qcom_smmu_sde_unsec_cb_0xFFFFFF968BC38000.txt                         MSM_DUMP_DATA_L1_INST_CACHE_0x3
arm_iommu_domain_31_soc_qcom_smmu_sde_sec_cb_0xFFFFFF968B434000.txt                           MSM_DUMP_DATA_L1_INST_CACHE_0x4
arm_iommu_domain_32__qcom_ethernet_ethqos_emb_smmu_0xFFFFFF968BD90000.txt                     MSM_DUMP_DATA_L1_INST_CACHE_0x5
arm_iommu_domain_33__ca_qcom_kgsl_iommu_gfx_d_secure_0xFFFFFF968FBAB000.txt                   MSM_DUMP_DATA_L1_INST_CACHE_0x6
arm_iommu_domain_34__ca_qcom_kgsl_iommu_gfx_d_secure_0xFFFFFF968FBA9000.txt                   MSM_DUMP_DATA_L1_INST_CACHE_0x7
arm_iommu_domain_35__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF968FBA6000.txt                     page_tables.txt
arm_iommu_domain_36__ca_qcom_kgsl_iommu_gfx_d_user_0xFFFFFF968FBA4000.txt                     pagetypeinfo.txt
arm_iommu_domain_37__c_a_qcom_gmu_0xFFFFFF968FB97000.txt                                      Properties.txt
arm_iommu_domain_38__c_a_qcom_gmu_0xFFFFFF968FB92000.txt                                      qrtr_port.txt
arm_iommu_domain_39_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05AE000.txt  qsee_log.txt
arm_iommu_domain_40_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05AA000.txt  regulator.txt
arm_iommu_domain_41_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05A6000.txt  reserved_mem.txt
arm_iommu_domain_42_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A05A1000.txt  roareadiff.txt
arm_iommu_domain_43_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A059D000.txt  scratch.bin
arm_iommu_domain_44_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A0598000.txt  sde_evtlog.txt
arm_iommu_domain_45_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF89A0594000.txt  sde_regdump.txt
arm_iommu_domain_46_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF969119A000.txt  sde_reglog.txt
arm_iommu_domain_47_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF969076E000.txt  sdi_dump_table.txt
arm_iommu_domain_48_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF969074E000.txt  secure_world_core0_regs.cmm
arm_iommu_domain_49_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF9691113000.txt  secure_world_core1_regs.cmm
arm_iommu_domain_50_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF96AA9FA000.txt  secure_world_core2_regs.cmm
arm_iommu_domain_51_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF9690787000.txt  secure_world_core4_regs.cmm
arm_iommu_domain_52_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF96907B7000.txt  secure_world_core5_regs.cmm
arm_iommu_domain_53_soc_qcom_msm_fastrpc_qcom_msm_fastrpc_compute_cb__0xFFFFFF96AAEC2000.txt  secure_world_core6_regs.cmm
arm_iommu_domain_54_soc_ipa_smmu_uc_0xFFFFFF96AAF5B000.txt                                    secure_world_core7_regs.cmm
arm_iommu_domain_55_soc_ipa_smmu_wlan_0xFFFFFF96AAF50000.txt                                  spm.txt
arm_iommu_domain_56_soc_ipa_smmu_ap_0xFFFFFF96AAF2C000.txt                                    t32_config.t32
ClockDumps.txt                                                                                t32_startup_script.cmm
cma_report_adsp_region.txt                                                                    tasks_highlight.txt
cma_report_cdsp_region.txt                                                                    tasks_sched_stats
cma_report_dma_contiguous_default_area.txt                                                    tasks.txt
cma_report_mem_dump_region.txt                                                                thermal_info
cma_report_qseecom_ta_region.txt                                                              timerlist.txt
cma_report_secure_display_region.txt                                                          tmc-etf.bin
cma_report_simple.txt                                                                         tmc-etf-swao.bin
cma_report_sp_region.txt                                                                      tmc_etf_swao.txt
cma_report_user_contig_region.txt                                                             tmc_etf.txt
core0_regs.cmm                                                                                tmc-etr.bin
core1_regs.cmm                                                                                tmc_etr.txt
core2_regs.cmm                                                                                uevent.txt
core4_regs.cmm                                                                                vmalloc.txt
core5_regs.cmm                                                                                vmstats.txt
core6_regs.cmm                                                                                vm_vcpu_context.txt
core7_regs.cmm                                                                                wakeup_resource.txt
cpr3_info.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能测试的几个重要指标的说明!

在做性能测试过程中有一件很重要的事情需要去完成,那就是分析性能指标数据,可以这样说做性能测试的整个过程都跟指标数据息息相关,下面来说一下常见的一些性能指标数据: 1.吞吐量 2.并发数 3.思考时间 4.响应时间 5.点击数 …

信息安全之网络安全防护

先来看看计算机网络通信面临的威胁: 截获——从网络上窃听他人的通信内容中断——有意中断他人在网络上的通信篡改——故意篡改网络上传送的报文伪造——伪造信息在网络上传送 截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动…

兼容性测试指南:技术和最佳实践

研究表明,如果应用程序表现不佳,88% 的用户就会放弃该应用程序。然而,确保软件兼容性并不是一件容易的事。平台和操作系统配置、用户期望、本地化问题、互操作性能力等等——产品团队通常需要考虑很多因素。 什么是兼容性测试 兼容性测试是软…

开始时间大于结束时间

1.dom中代码&#xff0c;监听所选日期值的变化&#xff0c;并把需要比较的时间字段作为参数传到监听方法中&#xff0c; <el-form-item label"起始日期" prop"startTime"><el-date-picker clearable size"small":disabled"isDisa…

智能未来:一站式AI技术探索平台(一键收藏)

KKAI&#xff0c;&#xff08;kk.zlrxjh.top&#xff09; 一个融合了星火大模型和文心大模型技术的先进知识增强型大语言模型&#xff0c;致力于自然语言处理&#xff08;NLP&#xff09;技术的深入研究与开发。此模型展现了卓越的语义理解与内容生成技能&#xff0c;轻松应对…

练习题:可变形参的方法

题目 练习&#xff1a;可变形参的方法n个字符串进行拼接&#xff0c;每一个字符串之间使用某字符进行分割&#xff0c;如果没有传入字符串&#xff0c;那么返回空字符串"" 代码 /*** ClassName: StringConCatTest* Description:* 练习&#xff1a;可变形参的方法** n…

vue 条件渲染

v-if​ v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。 <h1 v-if"awesome">Vue is awesome!</h1> v-else​ 你也可以使用 v-else 为 v-if 添加一个“else 区块”。 <button click"awesome !awesome&…

spring概念 及 SpringIoc 、DI

Spring框架&#xff0c;即&#xff1a;SpringFramework&#xff0c;主要优势 1、丰富的生态系统&#xff1a;Sping支持许多模块和库&#xff0c;如&#xff1a;SpringBoot、SpringSecurity、SpringCloud等&#xff0c; 2、模块化设计&#xff1a;框架组件之间的松散耦合和模块…

千川素材投放效果追踪与精准识别

一、投放效果深度追踪&#xff1a;从数据表面到策略内核在数字广告时代&#xff0c;单纯的曝光量已不再是评估广告效果的唯一标准。投放效果的深度追踪要求我们深入挖掘每一个数据背后的意义&#xff0c;洞察广告策略的实际效果。这不仅涉及到广告的点击率、转化率等显性指标&a…

Java毕业设计 基于SSM新闻管理系统

Java毕业设计 基于SSM新闻管理系统 SSM jsp 新闻管理系统 功能介绍 用户&#xff1a;首页 图片轮播 查询 登录 注册 新闻正文 评论 广告 社会新闻 天下新闻 娱乐新闻 个人中心 个人收藏 管理员&#xff1a;登录 用户管理 新闻管理 新闻类型管理 角色&#xff1a;用户 管理员…

FMEA与智能机器人:提升机器人可靠性与安全性的关键

随着科技的飞速发展&#xff0c;智能机器人已经深入到我们生活的方方面面&#xff0c;从工业生产到家庭服务&#xff0c;从深海探险到太空探索&#xff0c;处处都有它们的身影。然而&#xff0c;随着应用的日益广泛&#xff0c;机器人系统的复杂性和不确定性也在增加&#xff0…

Paper Digest|基于在线聚类的自监督自蒸馏序列推荐模型

论文标题&#xff1a; Leave No One Behind: Online Self-Supervised Self-Distillation for Sequential Recommendation 作者姓名&#xff1a; 韦绍玮、吴郑伟、李欣、吴沁桐、张志强、周俊、顾立宏、顾进杰 组织单位&#xff1a; 蚂蚁集团 录用会议&#xff1a; WWW 2024 …

书生浦语训练营2期-第一节课笔记

笔记总结: 了解大模型的发展方向、本质、以及新一代数据清洗过滤技术、从模型到应用的典型流程、获取数据集的网站、不同微调方式的使用场景和训练数据是什么&#xff0c;以及预训练和微调在训练优势、通信/计算调度、显存管理上的区别。 收获&#xff1a; 理清了预训练和微调…

深入理解Yarn:安装、配置与最佳实践

深入理解Yarn&#xff1a;安装、配置与最佳实践 目录 深入理解Yarn&#xff1a;安装、配置与最佳实践 一、引言 二、Yarn简介 三、安装Yarn 四、 基本使用 五、高级特性 六、 案例研究&#xff1a;迁移现有项目到Yarn 七、代码示例&#xff1a;Yarn脚本和工作流 八、…

第十三届蓝桥杯省赛真题 Java 研究生 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 排列字母试题 B: 灭鼠先锋试题 C: 质因数个数试题 D: 数位排序试题 E: 蜂巢试题 F : \mathrm{F}: F: 爬树的甲壳虫试题 G: 重新排序试题 H \mathrm{H} H : 技能升级试题 I: 最优清零方案试题 J : \mathrm{J}: J: 推导部分和 发现宝藏 …

【代码随想录算法训练营第三十八天 | LeetCode509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯】

代码随想录算法训练营第三十八天 | LeetCode509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 一、509. 斐波那契数 解题代码C&#xff1a; class Solution { public:int fib(int N) {if (N < 1) return N;int dp[2];dp[0] 0;dp[1] 1;for (int i 2; i < N; i)…

Java基础之算数运算符的初级用法

运算符 运算符: 对字面量或者变量进行操作的符号 表达式: 用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式 不同运算符连接的表达式体现的是不同类型的表达式 一 .算数运算符 实践一下 加 减 乘 运行结果: 除 取模 运行结果 练习: 数值拆分 需求…

Nginx_简介 + Linux系统下详细安装教程指路

安装教程指路 可参看该视频【尚硅谷Nginx教程&#xff08;亿级流量nginx架构设计&#xff09;】 https://www.bilibili.com/video/BV1yS4y1N76R/?p2&share_sourcecopy_web&vd_source4c2f33f3ba1a0dd45bfdf574befd0069 的p2-p7。从安装centos虚拟机到在虚拟机上安装ng…

Golang-Gorm-快速上手

Gorm文档 GORM文档地址 安装依赖 go get -u "gorm.io/driver/mysql"go get -u "gorm.io/gorm"连接数据库 默认连接方式 func main() {// 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情dsn : "user:passtcp(127.0.0…

Multisim14.0破解安装教程

Multisim14.0中文破解版是一款相当优秀的专业化SPICE仿真标准环境&#xff0c;Multisim14.0中文版功能强悍&#xff0c;为用户提供了所见即所得的设计环境、互动式的仿真界面、动态显示元件、具有3D效果的仿真电路、虚拟仪表、分析功能与图形显示窗口等等。Multisim破解版操作简…