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

做网站价格ihanshiapp软件制作教程

做网站价格ihanshi,app软件制作教程,图片广告设计软件,现在做网站建设的公司多么文章目录 前言串口乱码问题定位内核修改晶振频率uboot 修改晶振频率番外篇 前言 上篇文章《ARM DIY 硬件调试》介绍了 DIY ARM 板的基础硬件焊接#xff0c;包括电源、SOC、SD 卡座等#xff0c;板子已经可以跑起来了。 但是发现串口乱码#xff0c;今天就来解决串口乱码问… 文章目录 前言串口乱码问题定位内核修改晶振频率uboot 修改晶振频率番外篇 前言 上篇文章《ARM DIY 硬件调试》介绍了 DIY ARM 板的基础硬件焊接包括电源、SOC、SD 卡座等板子已经可以跑起来了。 但是发现串口乱码今天就来解决串口乱码问题。 串口乱码问题定位 串口出现乱码通常是波特率设置的不对仔细检查了下 设备树配置的波特率 chosen {stdout-path serial0:115200n8;};和 xshell 的串口参数 都是 115200配置没有问题。 想到是不是晶振实际频率和配置的不一致。 板子上焊接的是 26MHz设备树中配置的是 24000000这样导致系统时钟不正确最终产生的串口波特率不是 115200所以乱码。 内核修改晶振频率 内核修改晶振频率直接修改上述红框中设备树参数就行了 osc24M: osc24M_clk {#clock-cells 0;compatible fixed-clock;// clock-frequency 24000000;clock-frequency 26000000; // 晶振频率实际为 26MHzclock-accuracy 50000;clock-output-names osc24M;};上电发现内核串口输出已经正常但是 uboot 串口输出还是乱码 Qµ!ݿN¡¬,º¢§ʖʘʛS#⑭®ª¨ J¥*T ¤VնӝջᏎݵ6£¤¤Q¨©#ճ鎖ƘڐʘʛW#⑥ªٴ7䙵Rų䝼w儑 £¥u¡ĭ±셲Re³¢«-*A ƕ#Q¬®KՐIAª9כD:Ѣ#N¥®EA«陝£{A¡cѺ앥CA¶כA¦(Ωº ^Ųݷ¶LɐY½V썐®ͱ-CAµkպ䝵K#Ű¢­ن*§³)^Ѡʳ*V隂NNѱa♂QH鞂VJաa⑂2ݐ)[ἭݹC]ҡ±/썐©]ي᳃ٵՁ¦Wݴ#ٹªɹӝ A±-娝·Kþ$þ͸ӝŲ/Gѷ;A²º¯7aªA´9;ō¶*sAµ«$麅´VU¢骩)ݷűź#˅¡¢ِº厙Қa£*αUю)ͳ썐ߥ±Ꭼҙښ¢.¯取6ɐ.º厥«#]³ª¨ґ帩ɱªِ²폁²6բ1Uю麩Sɐ¬峩ѿ*ѻ鸷A¹V䍐[A¦A²¸3⑂6¤ɱ{A¤-/7ՐE͵ӝCͱݰύ%傧U ѡz썐]Jٱºن#٠ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.3.5 (liyongjunBox) (gcc version 12.3.0 (Buildroot 2023.08-rc1-102-g51dbde549e)) #3 SMP Thu Aug 17 04:19:40 CST 2023 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr10c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] cma: Reserved 16 MiB at 0x41c00000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: Using PSCI v0.1 Function IDs from DT [ 0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256 [ 0.000000] Kernel command line: consolettyS0,115200 panic5 consoletty0 rootwait root/dev/mmcblk0p2 earlyprintk rw [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:offuboot 修改晶振频率 那就接着修改 uboot 晶振频率配置同样修改设备树参数 osc24M: osc24M_clk {#clock-cells 0;compatible fixed-clock;// clock-frequency 24000000;clock-frequency 26000000;clock-accuracy 50000;clock-output-names osc24M;};上电发现 uboot 串口打印还是乱码。查看 uboot 编译选项确认 uboot 启用了设备树并且修改的设备树参数也已经被 C 代码解析到了是 26000000不过串口还是乱码。 最终通过修改 .h 文件中的 CONFIG_SYS_NS16550_CLK 参数成功修复了 uboot 串口乱码的问题 ns16550 是很多 SOC 使用的串口芯片 IP。 在上面截图的最后可以看到 #define COUNTER_FREQUENCY 24000000 这个配置这个参数仍然保持 24000000 而 uboot 串口也不会乱码说明 uboot 的串口时钟设置并不像 kernel 那样基于 CPU 时钟而是有自己单独的一个参数 CONFIG_SYS_NS16550_CLK这也解释了为什么一开始配置 uboot 设备树的 CPU 时钟仍然解决不了串口打印乱码的问题。 最终 uboot 和 kernel 的串口打印都正常了 U-Boot SPL 2022.01 (Aug 19 2023 - 23:03:28 0800) DRAM: 64 MiB Trying to boot from MMC1U-Boot 2022.01 (Aug 19 2023 - 23:03:28 0800) Allwinner TechnologyCPU: Allwinner V3s (SUN8I 1681) Model: Lichee Pi Zero DRAM: 64 MiB WDT: Not starting watchdog1c20ca0 MMC: mmc1c0f000: 0 Loading Environment from FAT... Unable to read uboot.env from mmc0:1... In: serial1c28000 Out: serial1c28000 Err: serial1c28000 Net: No ethernet found. Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot.scr 292 bytes read in 2 ms (142.6 KiB/s) ## Executing script at 41900000 4183712 bytes read in 349 ms (11.4 MiB/s) 9041 bytes read in 4 ms (2.2 MiB/s) Kernel image 0x41000000 [ 0x000000 - 0x3fd6a0 ] ## Flattened Device Tree blob at 41800000Booting using the fdt blob at 0x41800000Loading Device Tree to 42dfa000, end 42dff350 ... OKStarting kernel ...[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.3.5 (liyongjunBox) (gcc version 12.3.0 (Buildroot 2023.08-rc1-102-g51dbde549e)) #3 SMP Thu Aug 17 04:19:40 CST 2023 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr10c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] cma: Reserved 16 MiB at 0x41c00000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: Using PSCI v0.1 Function IDs from DT [ 0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256 [ 0.000000] Kernel command line: consolettyS0,115200 panic5 consoletty0 rootwait root/dev/mmcblk0p2 earlyprintk rw [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off 番外篇 在一开始没有找到解决 uboot 串口打印乱码问题办法的时候又想通过 uboot 本身来看出一些端倪怎么办呢我想到了一个办法因为实际晶振频率从 24MHz 变成了 26MHz那么串口波特率就会从 115200 变成115200 / 24 * 26 124800那就把 xshell 的串口波特率设置成 124800 这样串口打印也不乱码了 U-Boot 2022.01 (Aug 19 2023 - 23:03:28 0800) Allwinner TechnologyCPU: Allwinner V3s (SUN8I 1681) Model: Lichee Pi Zero DRAM: 64 MiB WDT: Not starting watchdog1c20ca0 MMC: mmc1c0f000: 0 Loading Environment from FAT... Unable to read uboot.env from mmc0:1... In: serial1c28000 Out: serial1c28000 Err: serial1c28000 Net: No ethernet found. Hit any key to stop autoboot: 0 printenv archarm baudrate115200 boardsunxi board_namesunxi boot_a_scriptload ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr} boot_efi_binaryload ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi boot_efi_bootmgrif fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi boot_extlinuxsysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf} boot_prefixes/ /boot/ boot_script_dhcpboot.scr.uimg boot_scriptsboot.scr.uimg boot.scr boot_syslinux_confextlinux/extlinux.conf boot_targetsfel mmc0 pxe dhcp bootcmdrun distro_bootcmd bootcmd_dhcpdevtypedhcp; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z ${fdtfile} -a -n ${soc}; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci; bootcmd_felif test -n ${fel_booted} test -n ${fel_scriptaddr}; then echo (FEL boot); source ${fel_scriptaddr}; fi bootcmd_mmc0devnum0; run mmc_boot bootcmd_pxedhcp; if pxe get; then pxe boot; fi bootdelay2 bootm_size0x2e00000 consolettyS0,115200 cpuarmv7 dfu_alt_info_ramkernel ram 0x41000000 0x1000000;fdt ram 0x41800000 0x100000;ramdisk ram 0x41C00000 0x4000000 distro_bootcmdfor target in ${boot_targets}; do run bootcmd_${target}; done efi_dtb_prefixes/ /dtb/ /dtb/current/ fdt_addr_r0x41800000 fdtcontroladdr43d71610 fdtfilesun8i-v3s-licheepi-zero.dtb fdtoverlay_addr_r0x41B00000 kernel_addr_r0x41000000 load_efi_dtbload ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile} loadaddr0x42000000 mmc_bootif mmc dev ${devnum}; then devtypemmc; run scan_dev_for_boot_part; fi mmc_bootdev0 partitionsnameloader1,start8k,size32k,uuid${uuid_gpt_loader1};nameloader2,size984k,uuid${uuid_gpt_loader2};nameesp,size128M,bootable,uuid${uuid_gpt_esp};namesystem,size-,uuid${uuid_gpt_system}; pxefile_addr_r0x41A00000 ramdisk_addr_r0x41C00000 scan_dev_for_bootecho Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi; scan_dev_for_boot_partpart list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist scan_dev_for_efisetenv efi_fdtfile ${fdtfile}; if test -z ${fdtfile} -a -n ${soc}; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile scan_dev_for_extlinuxif test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi scan_dev_for_scriptsfor script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done scriptaddr0x41900000 serial#12c0000127c26729 socsunxi stderrserial1c28000 stdinserial1c28000 stdoutserial1c28000 uuid_gpt_espc12a7328-f81f-11d2-ba4b-00a0c93ec93b uuid_gpt_system69dad710-2ce4-4e3c-b16c-21a1d49abed3Environment size: 4258/131068 bytes然后通过 uboot 的串口打印以及环境变量来找寻更多信息帮助解决问题。
http://www.hkea.cn/news/14336474/

相关文章:

  • 泰安企业网站制作wordpress 视频页面
  • 网站被黑了经典重庆论坛新闻评论
  • 什么是网站链接优化十大汽车公司
  • 网站后台排版布局php红酒网站建设
  • 栖霞建设招标网站如何布局网站
  • 徐州贾汪区建设局网站公众号免费推广平台
  • 如何把自己做的网站放到网上在哪里查商标注册信息
  • 西安做网站优化赣州seo培训
  • 做网站网站的推广是不是犯罪的wordpress 手机不显示图片
  • 贵州省水利建设管理总站网站wordpress文章显示字数
  • 来宾 网站建设建筑工人招聘网站怎么做
  • 谷歌seo网站推广怎么做企业网站ui设计欣赏
  • 全国电子网站建设php本地建站工具
  • 响应式网站 框架个人网站如何建立
  • 加强网站内容建设的意见google付费推广
  • 建国外网站宝安建设工程交易服务网
  • 导航网站模板免费赣州市九一人才网手机版
  • 住房城市建设网站长沙好的网站建设公司
  • 网站开发报告样式外贸营销网
  • asp.net 网站 相册建设网站的情况说明
  • 搜狐最大的门户网站舟山网络公司网站建设公司
  • 制作网站软件app山东省农村电影监控平台下载
  • 怀化做网站ui网页设计成都培训
  • 绍兴微网站建设电子商务网站系统规划
  • 营销型网站开发做seo排名好的公司
  • 网站用户体验准则凭祥网站建设
  • 下载wordpress很慢安卓优化大师全部版本
  • 怎么做企业网站二维码济南网络建站模板
  • 杭州省建设厅网站wordpress qps
  • 东莞软件网站推广wordpress如何使用父导航可点击