仓颉——申请内测、环境搭建、编译测试
2024年6月21日,华为仓颉正式公开发布。
不少同学看过仓颉白皮书后,都在找SDK从哪下载,HelloWorld怎么跑。仓颉公众号也及时发布了内测的方式,我也亲自走了一遍整个流程,
一,申请内测
关注“仓颉编程语言”微信公众号,回复“SDK”关键词,填写内测申请问卷(姓名、邮箱、gitcode地址等)。【建议提前注册gitcode,github可直接授权登录】
接下来就是等待邮件回复,2-3个工作日,
管理审核成功后,即可访问仓颉社区:仓颉SDKGitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。https://gitcode.com/Cangjie 仓颉支持VSCode开发环境,社区提供了VSCode插件
CangjieVSCodePlugin
,以及Linux/Windows/MacOS版本的SDK。
二,环境搭建
2.1 Windows平台搭建仓颉环境
2.1.1 下载SDK
从你送到的邮箱里面点击Windows版本的仓颉lSDK链接
点击exe或者 zip都行,exe需要安装,zip解压可用
我这里用的zip,直接解压
2.1.2 安装,配置系统环境
2.1.2.1 exe安装
如果你下载的SDK是exe格式,直接点击安装就好,安装时会自动将所需环境变量配置好。
选 all user
2.1.2.2 zip 解压 配置环境变量 (可在IDE中做配置)
我这里的解压到 c:\cangjie\
右键 我的电脑---->属性---->高级系统设置---->环境变量
然后找到下方 系统变量---->双击Path
将
c:\cangjie\bin
c:\cangjie\tools\bin
c:\cangjie\runtime\lib\windows_x86_64_llvm
c:\cangjie\debugger\bin
添加到环境变量
遇到环境变量超过2047 请参考《解决:此环境变量太大。此对话框允许将值设置为最长2047个字符-CSDN博客》
然后用 命令行工具测试下
C:\Users\Administrator>cjc --help
Usage:cjc [option] file...Options:--diagnostic-format <value> Diagnostic format. Candidate modes:<value>=json<value>=noColor<value>=default--scan-dependency Get the package(s) which the current package depends on--conditional-compilation-config <value>User defined contion to compile--debug-macro Enable debug macro--parallel-macro-expansion Enable parallel macro expansion-g Enable compile debug version target--trimpath <value> Remove a specified path prefix in debuginfo-s, --strip-all Strip the symbol table from executable and dynamic library--test Enable compile test--mock <value> Specify whether mock features are enabled, or disabled, or a runtime exception is thrown when trying to use mock features<value>=on<value>=off<value>=runtime-error-o, --output <value> Specify product name or output directory when compiling a package--output-dir <value> Specify output directory (it affects '--output' option)--static-std Statically link packages of the std module--dy-std Dynamically link packages of the std module--static-libs Statically link packages of other modules except std--dy-libs Dynamically link packages of other modules except std--lto <value> Enable LTO to either 'full' or 'thin'<value>=full<value>=thin--enable-ad, --enable-auto-differentiationEnables automatic differentiation--enable-chir2-devirtualizationEnable CHIR 2 devirtualization.--enable-opaque Enable opaque pointer--fchir-constant-propagationEnable constant propagation optimizaion in CHIR--fno-chir-constant-propagationDisable constant propagation optimizaion in CHIR--fchir-function-inlining Enable function inlining optimizaion in CHIR--fno-chir-function-inliningDisable function inlining optimizaion in CHIR--fchir-devirtualization Enable devirtualization optimizaion in CHIR--fno-chir-devirtualization Disable devirtualization optimizaion in CHIR--sanitizer-coverage-inline-8bit-countersEnable sanitizer-coverage-inline-8bit-counters in CHIR--sanitizer-coverage-inline-bool-flagEnable sanitizer-coverage-inline-bool-flag in CHIR--sanitizer-coverage-trace-pc-guardEnable sanitizer-coverage-trace-pc-guard in CHIR--sanitizer-coverage-pc-tableEnable sanitizer-coverage-pc-table in CHIR--sanitizer-coverage-stack-depthEnable sanitizer-coverage-stack-depth in CHIR--sanitizer-coverage-trace-comparesEnable sanitizer-coverage-trace-compares in CHIR--sanitizer-coverage-trace-memcmpEnable sanitizer-coverage-trace-memcmp in CHIR--sanitizer-coverage-level=0sancov level 0--sanitizer-coverage-level=1sancov level 1--sanitizer-coverage-level=2sancov level 2--sanitizer-coverage-level <value>Set sanitizer-coverage level--int-overflow <value> Specify default integer overflow strategy:<value>=throwing<value>=wrapping<value>=saturating--fast-math Enable fast-math mode--link-options <value> Options directly passed to linker-L, --library-path <value> Add directory to library search path-l, --library <value> Link library-B, --toolchain <value> Use toolchain binaries and object files at the given directory--target <value> Generate code for the given target platform--target-cpu <value> Generate instructions for the given target processor (Experimental)--sysroot <value> Set the system root directory under which bin, lib and include can be found--output-type <value> Specify output file type<value>=exe emit executable (default)<value>=staticlib emit static library<value>=dylib emit dynamic library-O0 Optimization level 0 (default)-O, -O1 Optimization level 1-O2 Optimization level 2-Os Optimization level s, like -O2 with extra optimizations for size-Oz Optimization level z, like -Os but reduces code size further-O<value> Set Optimization level--module-name <value> Tell compiler name of the module-p, --package Specify package directory to be compiled--import-path <value> Add .cjo search path--incremental-compile Enable incremental compilation.--save-temps <value> Save intermediate compilation results. <value>: path to save temp files.-Woff, --warn-off <value> Suppress a specific group of warning<value>=all<value>=unused<value>=driver-arg<value>=deprecated<value>=unsupport-compile-source<value>=package-import<value>=parser<value>=semantics<value>=interpreter-Won, --warn-on <value> Report a specific group of warning<value>=all<value>=unused<value>=driver-arg<value>=deprecated<value>=unsupport-compile-source<value>=package-import<value>=parser<value>=semantics<value>=interpreter--error-count-limit <value> Emit specified <number> of errors only. Available options: all, <number> (8 by default)-V, --verbose Enable verbose-v, --version Print compiler version information-h, --help Show usage--macro-lib <value> Options directly passed to macro library, put the value into "" when there is space in it--compile-macro Options to compile the macro define package--coverage Enable coverage--experimental Enable experimental options-j, --jobs <value> Number of tasks to run at once--apc, --aggressive-parallel-compileEnable agrressive parallel compile--sanitize <value> Enable sanitizer:<value>=address<value>=thread--fobf-string Enable string literal obfuscation--fno-obf-string Disable string literal obfuscation--fobf-const Enable constant literal obfuscation--fno-obf-const Disable constant literal obfuscation--fobf-layout Enable code layout obfuscation--fno-obf-layout Disable code layout obfuscation--fobf-cf-flatten Enable control flow flatten obfuscation--fno-obf-cf-flatten Disable control flow flatten obfuscation--fobf-cf-bogus Enable control flow bogus obfuscation--fno-obf-cf-bogus Disable control flow bogus obfuscation--fobf-all Enable all obfuscations--obf-config <value> Specify obfuscation configure file--obf-level <value> Specify obfuscation level. Available value: 1 to 10 (5 by default)--obf-seed <value> Specify random seed for obfuscation algorithm. Available value: <number>--disable-reflection Disable reflection--stack-trace-format <value>Specify stack trace format<value>=default<value>=simple<value>=all--pgo-instr-gen PGO instrumentation--pgo-instr-use <value> Read PGO instrumentation profile--discard-eh-frame Discard the eh_frame section
2.2 VS Code Cangjie
插件安装
-
在这个链接中下载VS Code的插件。下载下来并解压。得到一个
Cangjie-0.51.4.vsix
文件,之后会用到。 -
打开VS Code,如图点击左侧Extensions -> Views and More Actions -> Install from VSIX,找到刚才解压出来的
Cangjie-0.51.4.vsix
文件。安装成功。
开发环境搭建完成。
三,项目创建、编译
3.1 VS Code 创建项目编译运行
在VS Code界面中使用快捷键ctrl + shift + p
在搜索框里输入关键字搜索Create Cangjie Project
并选择
下一步选择Create CJNative Cangjie Project
选择Create Executable Output Cangjie Project
在弹出的文件夹选择窗里选择工程存放的目录
回到之前界面,在上方输入框中输入工程的名称,并回车
在左侧目录结构中找到src -> main.cj
可以看到默认创建的一段helloworld代码
main.cj 内容
main(): Int64 {println("hello world")return 0
}
cjpm.toml 内容
[dependencies][package]cjc-version = "0.51.4"compile-option = ""description = "nothing here"link-option = ""name = "HelloTest"output-type = "executable"src-dir = ""target-dir = ""version = "1.0.0"package-configuration = {}
代码 main.cj 我们用中文试试
main() {println("你好,仓颉")
}
运行
汉字编码有问题,暂时的解决方案是运行chcp 65001命令
chcp 65001
再次运行
cjpm run
3.2 txt文本 开发编译测试
main() {println("hello cangjie")
}
编译
cjc hello.cj -o hello.out
参考资料
- 仓颉官网:仓颉-鸿蒙原生应用编程语言-华为开发者联盟
- 仓颉社区:GitCode - 全球开发者的开源社区,开源代码托管平台
- 仓颉编程语言白皮书:文档中心
相关文章:
仓颉——申请内测、环境搭建、编译测试
2024年6月21日,华为仓颉正式公开发布。 不少同学看过仓颉白皮书后,都在找SDK从哪下载,HelloWorld怎么跑。仓颉公众号也及时发布了内测的方式,我也亲自走了一遍整个流程, 一,申请内测 关注“仓颉编程语言…...
C语言教程指针笔记整理(二)
https://www.bilibili.com/video/BV1cx4y1d7Ut?spm_id_from333.788.videopod.episodes&vd_sourcee8984989cddeb3ef7b7e9fd89098dbe8&p107 本篇为贺宏宏老师C语言教程指针部分笔记整理 //8-19 一维数组和二维数组 // int arr[4] [][][][] //含义: //1.arr…...
3.无重复字符的最长子串 python
无重复字符的最长子串 题目描述示例 1:示例 2:示例 3:提示:题目链接 解题思路Python 实现详细解释 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长 子串的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子…...
NIST 发布后量子密码学转型战略草案
美国国家标准与技术研究所 (NIST) 发布了其初步战略草案,即内部报告 (IR) 8547,标题为“向后量子密码标准过渡”。 该草案概述了 NIST 从当前易受量子计算攻击的加密算法迁移到抗量子替代算法的战略。该草案于 2024 年 11 月 12 日发布,开放…...
高危,Laravel参数注入漏洞安全风险通告
今日,亚信安全CERT监控到安全社区研究人员发布安全通告,披露了Laravel 参数注入漏洞(CVE-2024-52301)。在受影响的版本中,Application.php 文件的 detectEnvironment 函数直接使用了 $_SERVER[argv],但没有检查运行环境是否为 CLI…...
【漏洞复现】|智互联SRM智联云采系统quickReceiptDetail SQL注入漏洞
漏洞描述 智互联(深圳)科技有限公司SRM智联云采系统针对企业供应链管理难题,及智能化转型升级需求,智联云采依托人工智能、物联网、大数据、云等技术,通过软硬件系统化方案,帮助企业实现供应商关系管理和采购线上化、移动化、智能…...
【Visual Studio系列教程】如何在 VS 上编程?
上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…...
Pytest-Bdd-Playwright 系列教程(12):步骤参数 parsers参数解析
Pytest-Bdd-Playwright 系列教程(12):步骤参数 & parsers参数解析 前言一、什么是步骤参数?二、pytest-bdd 的步骤参数用法2.1 简单字符串解析2.2 自定义正则表达式解析2.3 参数类型转换 三、案例:基于 pytest-bdd…...
java 增强型for循环 详解
Java 增强型 for 循环(Enhanced for Loop)详解 增强型 for 循环(也称为 “for-each” 循环)是 Java 从 JDK 5 开始引入的一种便捷循环语法,旨在简化对数组或集合类的迭代操作。 1. 基本语法 语法格式 for (类型 变量…...
RUST学习教程-安装教程
文章目录 参考文档安装教程更新卸载 参考文档 https://course.rs/first-try/installation.html 安装教程 Linux或者mac安装教程 curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh安装完成,当出现command not found的时候,需要source一下…...
第十六届蓝桥杯模拟赛(第一期)-c++/c
c/c蓝桥杯模拟赛题解,非常详细 质因数 1、填空题 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...
使用uniapp编写APP的文件上传
使用uniapp插件文件选择、文件上传组件(图片,视频,文件等) - DCloud 插件市场 实用效果: 缺陷是只能一个一个单独上传...
Go语言从入门到精通
go相关命令 //对go源码进行编译,生成.exe文件 go build go文件名//直接运行go源码(生成.exe文件执行后,又删除.exe文件) go run go文件名go中的package和import /*package:用来声明这个文件是属于哪个包的*/ package…...
捉虫记录02-Nacos访问失败
目录 一、问题 二、排查 三、解决方案 一、问题 在访问nacos的时候出现以下问题: 二、排查 先用docker logs nacos来查找报错信息 docker logs nacos 看问题报错就是数据源问题,nacos没能连接上mysql 三、解决方案 第一步 docker restart mysql …...
安宝特方案 | AR助力紧急救援,科技守卫生命每一刻!
在生死时速的紧急救援战场上,每一秒都至关重要!随着科技的发展,增强现实(AR)技术正在逐步渗透到医疗健康领域,改变着传统的医疗服务模式。 安宝特AR远程协助解决方案,凭借其先进的技术支持和创新…...
超详细:Redis分布式锁
如何基于 Redis 实现一个最简易的分布式锁? 不论是本地锁还是分布式锁,核心都在于“互斥”。 在 Redis 中, SETNX 命令是可以帮助我们实现互斥。SETNX 即 SET if Not eXists (对应 Java 中的 setIfAbsent 方法),如果 key 不存在…...
@Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
1. 前置知识 Configuration public class RedisConfig {Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template new RedisTemplate<>();template.setConnectionFactory(facto…...
MTK主板定制_联发科主板_MTK8766/MTK8768/MTK8788安卓主板方案
主流市场上的MTK主板通常采用联发科的多种芯片平台,如MT8766、MT6765、MT6762、MT8768和MT8788等。这些芯片基于64位Cortex-A73/A53架构,提供四核或八核配置,主频可达2.1GHz,赋予设备卓越的计算与处理能力。芯片采用12纳米制程工艺…...
k8s篇之控制器类型以及各自的适用场景
1. k8s中控制器介绍 在 Kubernetes 中,控制器(Controller)是集群中用于管理资源的关键组件。 它们的核心作用是确保集群中的资源状态符合用户的期望,并在需要时自动进行调整。 Kubernetes 提供了多种不同类型的控制器,每种控制器都有其独特的功能和应用场景。 2. 常见的…...
VideoCrafter模型部署教程
一、介绍 VideoCrafter是一个功能强大的AI视频编辑和生成工具,它结合了深度学习和机器学习技术,为用户提供了便捷的视频制作和编辑体验。 系统:Ubuntu22.04系统,显卡:4090,显存:24G 二、基础…...
mysql 与 mybatis 错误记录
DATE_FORMAT(FROM_UNIXTIME(start_time / 1000)只能传秒级时间戳,毫秒级时间戳group后不能select; tinyint(1)会被mybatis自动翻译为Boolean值,可以使用resultMap重新映射一下来解决,select使用了别名,在resultMap中映射column也必…...
本地git多用户ssh配置
仅作备份,不做解释 1. ~/.ssh/config Host jeadyx.gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_jeadyxHost jeady5.gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_…...
macbook外接2k/1080p显示器调试经验
准备工具 电脑 满足电脑和显示器要求的hdmi线或者转接头或者扩展坞 betterdisplay软件 Dell P2419H的最佳显示信息如下 飞利浦 245Es 2K的最佳显示比例如下 首选1152...
如何删除Kafka中的数据以及删除topic
如何删除Kafka数据已经以及删除topic呢? 1、删除数据 先启动Kafka实例 docker exec -it kafka-0 /bin/bash #进去容器 rm -rf /bitnami/kafka/data/* #删除数据 exit #退出如果删除失败,可能是数据不存在于/bitnami/kafka/data,使用 cd /o…...
wordpress二开-WordPress新增页面模板-说说微语
微语说说相当于一个简单的记事本,使用还是比较方便的。这个版本的说说微语CSS样式不兼容,可能有些主题无法适配,但是后台添加内容,前端显示的逻辑已经实现。可以当作Word press二开中自定义页面模板学习~ 一、后台添加说说微语模…...
Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找
目录 一,数组翻转 二,冒泡排序 三,二分查找(一尺之锤,日取其半,万世不竭) 一,数组翻转 1.概述:数组对称索引位置上的元素互换,最大值数组序号是数组长度减一 创建跳板…...
使用 OpenAI 进行数据探索性分析(EDA)
探索性数据分析(Exploratory Data Analysis, 简称 EDA)是数据分析中不可或缺的环节,帮助分析师快速了解数据的分布、特征和潜在模式。传统的 EDA 通常需要手动编写代码或使用工具完成。现在,通过 OpenAI 的 GPT-4 模型,…...
Jdk1.8新特性
新增的类以及常用的方法 在Java的java.util.concurrent包中,除了之前提到的并发工具类外,还有一些新增的类以及它们常用的方法。以下是一些例子: 新增的类 CompletableFuture: CompletableFuture是Java 8中引入的一个类&a…...
丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU
目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大 平台功能介绍 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…...
mock.js:定义、应用场景、安装、配置、使用
前言:什么是mock.js? 作为一个前端程序员,没有mockjs你不感觉很被动吗?你不感觉你的命脉被后端那个男人掌握了吗?所以,我命由我不由天!学学mock.js吧! mock.js 是一个用于生成随机…...
优化 MFC CGridCtrl 的表格布局与功能
在使用 MFC 的 CGridCtrl 控件创建表格时,遇到的一个典型问题是,当表格滚动条出现时,最后一列会显示空白。这篇博客将记录解决这一问题的详细过程,同时总结了 CGridCtrl 初始化及优化的关键步骤,帮助开发者快速搭建一个…...
Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失
Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失 Addressable Play Mode Script加载模式 选择 Use Existiing Build 1.Unity 切换到 PC 平台,执行 Addressable Build 运行,加载 bundle 内的预制体 显示正常 2.Unit…...
直播预告| 深入探索 DB-GPT GraphRAG 的设计解读与优化
前言 感谢DB-GPT的社区朋友持续关注我们的源码解读系列~在前几期的直播中,我们深入探讨了DB-GPT的架构设计、智能体工作流、Agent开发等话题,受到了热烈反响。 本期,我们邀请到了社区的老朋友,也是DB-GPT GraphRag的维…...
C语言:指针变量作为函数参数
在c语言中,函数的参数不仅可以是整数,小数、字符等具体的数据,还可以是指向他们的指针,用指针变量做函数,参数可以将函数外部的地址传递给函数内部,使得在函数内部可以操作函数外部的数据,并且这…...
机器学习基础06
目录 1.梯度下降 1.1梯度下降概念 1.2梯度下降公式 1.3学习率 1.4实现梯度下降 1.5API 1.5.1随机梯度下降SGD 1.5.2小批量梯度下降MBGD 1.6梯度下降优化 2.欠拟合过拟合 2.1欠拟合 2.2过拟合 2.3正则化 2.3.1L1正则项(曼哈顿距离) 2.3.2…...
RecyclerView详解——(四)缓存复用机制
稍微看了下源码和部分文章,在此做个小小的总结 RecyclerView,意思为可回收的view,那么相对于listview,他的缓存复用肯定是一大优化。 具体而言,当一个列表项被移出屏幕后,RecyclerView并不会销毁其视图&a…...
向量数据库FAISS之五:原理(LSH、PQ、HNSW、IVF)
1.Locality Sensitive Hashing (LSH) 使用 Shingling MinHashing 进行查找 左侧是字典,右侧是 LSH。目的是把足够相似的索引放在同一个桶内。 LSH 有很多的版本,很灵活,这里先介绍第一个版本,也是原始版本 Shingling one-hot …...
速盾:CDN缓存的工作原理是什么?
CDN(内容分发网络)是一种将内容分发到全球不同地理位置的网络架构,以提供更快速、可靠的内容传输。其核心原理是利用缓存技术,将数据内容分布到离用户最近的边缘节点上。当用户请求内容时,CDN将根据用户的IP地址&#…...
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
作者:来自 Elastic Greg Crist Elasticsearch 推出了一项新功能:Elastic AI Assistant for Search。你可以将其视为 Elasticsearch 和 Kibana 开发人员的内置指南,旨在回答问题、引导你了解功能并让你的生活更轻松。在 Microsoft AI Services…...
SQL基础语法介绍-基于MySQL
文章目录 一、SQL分类二、SQL语法1.数据库字段类型1.1.数值类型1.2 字符类型1.3 日期类型 2.字段约束2.1约束介绍2.2 非空约束(not null)2.3 唯一约束(unique)2.4 主键约束(primary key)2.5 自增长主键2.6 …...
android 性能分析工具(03)Android Studio Profiler及常见性能图表解读
说明:主要解读Android Studio Profiler 和 常见性能图表。 Android Studio的Profiler工具是一套功能强大的性能分析工具集,它可以帮助开发者实时监控和分析应用的性能,包括CPU使用率、内存使用、网络活动和能耗等多个方面。以下是对Android …...
【STM32项目】基于STM32设计的震动马达超声波电机高频震动——高级定时器PWM互补输出带死区控制
高级定时器PWM互补输出带死区控制 前言:实现高级定时器互补输出带死区控制,实现震动/超声波电机/马达,高频震动。使用 STM32F103 芯片输出两路互补 PWM,并带有死区和刹车控制功能。 定时器 1 通道 1 及其互补通道输出 PWM,且带死区控。当定时器 1 的刹车输入引脚被拉…...
深入探索Golang的GMP调度机制:源码解析与实现原理
在Golang(又称Go语言)的并发编程模型中,GMP调度模型扮演着举足轻重的角色。GMP分别代表Goroutine(协程)、M(Machine,即内核线程)和P(Processor,即逻辑处理器&…...
Django如何配置多个环境的MySQL数据库
在 Django 项目中配置多个环境的 MySQL 数据库是一个常见的需求,特别是在开发、测试和生产环境中使用不同的数据库配置。你可以通过在 settings.py 文件中使用条件语句或环境变量来实现这一点。 1. 使用环境变量 使用环境变量是一种灵活且安全的方式来配置多个环境…...
数据结构(链栈——c语言实现)
链式栈(Linked Stack)是一种基于链表数据结构实现的栈。它利用链表节点的指针来存储元素,并通过指针的链接关系来维护栈的后进先出(LIFO, Last In First Out)特性。 链式栈的优点 动态大小: 链式栈…...
FPGA实现串口升级及MultiBoot(九)BPI FLASH相关实例演示
本文目录索引 区别一:启动流程的区别区别二:高位地址处理区别三:地址映射例程说明总结例程地址之前一直都是以SPI FLASH为例进行相关知识讲解,今天我们介绍另一款常用的配置FLASH-BPI FLASH。 今天的讲解以简洁为主,主打个能用一句话不说两句话。以和SPI区别为主,实例演…...
Android 网络通信(三)OkHttp实现登入
学习笔记 目录 一. 先写XML布局 二、创建 LoginResponse 类 :封装响应数据 目的和作用: 三、创建 MyOkHttp 类 :发送异步请求 代码分析 可能改进的地方 总结 四、LoginActivity 类中实现登录功能 详细分析与注释: 总结: 改进建议: 零、响应数据样例 通过 P…...
java基础概念37:正则表达式2-爬虫
一、定义 【回顾】正则表达式的作用 作用一:校验字符串是否满足规则作用二:在一段文本中查找满足要求的内容——爬虫 二、本地爬虫VS网络爬虫 2-1、本地爬虫 示例: 代码优化: public static void main(String[] args) {// 大…...
【大数据学习 | Spark-Core】RDD的概念与Spark任务的执行流程
1. RDD的设计背景 在实际应用中,存在许多迭代式计算,这些应用场景的共同之处是,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入。但是,目前的MapReduce框架都是把中间结果写入到HDFS中&…...
day06(单片机高级)PCB设计
目录 PCB设计 PCB设计流程 元器件符号设计 原理图设计 元器件封装设计 元器件库使用 PCB设计 目的:学习从画原理图到PCB设计的整个流程 PCB设计流程 元器件符号设计 元器件符号:这是电子元器件的图形表示,用于在原理图中表示特定的元器件。例…...