- 博客(22)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注
原创 python:将32位的16进制数据以二进制/hex/binary的形式写入到文件
如0x1234,写入到文件应该是hex:[00 00 12 23]import sysimport osimport structdef tran_string_to_binary(x2): temp_list = [] str_x2 = str(hex(x2))[2:].rstrip() if (len(str_x2))%2 == 1: str_x2 = "0" + str_x2 for i in range(0, int((8 - len(str_x2))/2)): .
2020-11-30 19:21:47 1236
原创 [mmu/cache]-MMU的地址翻译(Address translation)指令介绍
Address translation system instructionsAT指令的语法格式:有了上面的语法格式后,就非常好理解armv8的MMU提供了14条AT指令了:MMU的地址翻译一般都是自动进行的,在当前的linux kernel(kernel-4.14)中还真找不到使用AT指令的代码。而在optee中是可以找到一个示例的,如下:static bool arm_va2pa_helper(void *va, paddr_t *pa){ uint32_t except
2020-11-19 15:17:44 4406
原创 [mmu/cache]-ARMV8的cache的维护指令介绍
Armv8里定义的Cache的管理的操作有三种:无效(Invalidate) 整个高速缓存或者某个高速缓存行。高速缓存上的数据会被丢弃。清除(Clean) 整个高速缓存或者某个高速缓存行。相应的高速缓存行会被标记为脏,数据会写回到下一级高速缓存中或者主存储器中。清零(Zero) 在某些情况下,对高速缓存进行清零操作起到一个预取和加速的功效,比如当程序需要使用一大块临时内存,在初始化阶段对这个内存进行清零操作,这时高速缓存控制器会主动把这些零数据写入高速缓存行中。若程序主动使用高速缓存的清零操作,那么
2020-11-18 14:01:16 7280 3
原创 LockSettingsService的setLockCredentialInternal函数详解
在android系统中的设置密码、清除密码、修改密码,都是调用到LockSettingsService.java的setLockCredential函数进行的,而setLockCredential又调用了setLockCredentialInternal,接下来我们来分析这个函数的流程private boolean setLockCredentialInternal(LockscreenCredential credential, LockscreenCredential savedCre
2020-11-17 14:51:50 4323
原创 Android手机使用命令行增加/删除/修改密码(password/pin/pattern)
在android系统中,支持locksettings(等价cmd lock_settings)命令1、进入adb shell,查看locksettings支持哪些命令locksettings命令C:\Users\user1>C:\Users\user1>adb shellProjects:/ # locksettingsusage: locksettings set-pattern [--old OLD_CREDENTIAL] NEW_PATTERN locksetti
2020-11-16 16:04:05 6167
原创 [reference]-ARM/TEE/security等论文中的缩写和参考文献
AES Advanced Encryption Standard, a symmetric-key encryption standardDigest The output of a hash operationDoS Denial of ServiceEEPROM Electrically Erasable Programmable Read-Only MemoryeFlash See Internal flasheFuse OTP memory, avail
2020-11-15 00:48:28 2295 1
原创 [trustzone]-TZC400学习总结
文章目录1、tzc400的硬件框图2、TZC-400 example system3、FPIDs and NSAIDs4、region setup1、tzc400的硬件框图从图中可以看出apb接口 : 用于cpu读写tzc-400的寄存器;ACE-Lite接口 : TZC400的通过ACE-Lite接口接到Master和DDR中间,对Master访问DDR就行filter控制 Filter : 一块TZC400支持0-x个filter,x一般是8、16也就是说,tzc400中,有一个contr
2020-11-14 18:02:53 9652 7
原创 [mmu/cache]-ARMV8-aarch64的虚拟内存(mmu/tlb/cache)介绍-概念扫盲
文章目录1、相关术语:2、address translation system (AT)1、相关术语:➨ VMSA - Virtual Memory System Architecture➨VMSAv8➨VMSAv8-32➨VMSAv8-64➨Virtual address (VA)➨Intermediate physical address (IPA)➨Physical address (PA)Translation stage can support only a singl
2020-11-11 15:09:51 7782 1
原创 [mmu/cache]-ARM MMU/TLB的学习笔记和总结
1、 ARM mmu三级页表查询的过程(1)、在开启MMU后,cpu发起的读写地址是一个64bit的虚拟地址,(2)、该虚拟地址的高16bit要么是全0,要么是全1. 如果是全0,则选择TTBR0_ELx做为L1页表的基地址; 如果是全1,则选择TTBR1_ELx做为L1页表的基地址;(3)、TTBRx_ELn做为L1页表,它指向L2页表,在根据bit[41:29]的index,查询到L3页表的基地址(4)(5)、有了L3页表的基地址之后,在根据bit[28:16]的index,查询到页面的地址
2020-11-09 13:17:38 4698
原创 python常用指令速查
文章目录(1)、split和rsplit(1)、split和rsplitpath = /home/username/data/text.txt path.split("/")["home","username","data","text.txt "]使用rsplit:path.rsplit("/",1)["/home/username/data","text.txt "]注意:rsplit("/",1) 中的1,表示从后面分割1个出来,如果是2,那么就是分割两部分出来...
2020-11-09 12:00:44 1073
原创 [hypervisor]-ARMV8的hypervisor技术介绍–InProgress
1、软件架构图2、术语介绍:➨partritions : partrition提供一种沙箱式的软件执行环境➨VMs和SPs :在normal叫VM,在secure叫SP(secure partritions)➨endpoint(等价VM):在normal, endpoint可以是VMs,也可以是os kernel在secure,endpoint可以是:– Secure EL0.– Secure User mode.– Secure EL1.– Secure Supervisor mo
2020-11-06 09:35:22 4438
原创 [ARM异常]-ARMV8-aarch64 异常(中断)是如何跳转到向量表的
gic,gicv2,gicv3,中断控制器,IRQ,FIQ,Serror, 中断,同步异常,异步异常,TF-A,TF-M,ATF,TrustedFirmware,trustzone,TEE,optee,trusty,tlk,lk,armv8,armv9,arm,secureboot,BL31,BL32,BL1,BL2,hypervisor,终端安全,secureboot,security,virtulization
2020-11-05 18:31:09 5612 1
原创 python:将json数据写入到excel
环境 : Python2封装一个函数,可以将json格式的数据,填入到excel中函数使用示例: create_a_new_excel(s_name,“table1”,test_title, test_use_list)s_name是excel的名称, table1是excel中表的名称,test_title是一个列表,列出excel的标题test_use_list是要填充的数据,是字典组成的列表例如: test_title = [ "title1", .
2020-11-05 15:55:09 4471 2
原创 [core]-ARM Core的分类和总结
1、A77(1)、cache/TLBL1 d-TLB 48-entry fully associative,支持4KB, 16KB, 64KB, 2MB, and 512MB的页面L1 i-TLB 48-entry fully associative,支持4KB, 16KB, 64KB, 2MB, and 32MB的页面L2 TLB 5-way set associative,1280-entry,支持4KB, 16KB, 64KB, 2MB, 32MB,512MB, and 1GB的BLOCK
2020-11-04 13:18:13 3255 1
原创 optee中core_init_mmu_regs函数解读
在optee中有下列一段代码,未开启MMU之前,先使用了virt_to_phys,然后才将页表基地址写入到TTBR0,然后才开启MMU,是否感到很奇怪??bl core_init_mmu_mapbl core_init_mmu_regsbl cpu_mmu_enablebl cpu_mmu_enable_icachebl cpu_mmu_enable_dcachevoid core_init_mmu_regs(void){ uint64_t mair; uint64_t tcr; pa
2020-11-03 09:50:48 2638
原创 optee的共享内存的介绍
share memory是一块内存区域, 用于non-secure world和secure world的通信.optee支持两种share memory: 连续的buffer,非连续的bufferoptee是按照buffer来管理共享内存的,而不是按照pool来管理的. 每一个buf需要配置如下属性:buffer的起始地址和size该buffer的cache属性如果是被map到非连续的buf,则列出它所有的块(chunk)配置成连续的share bufferCFG_CORE_RESERV
2020-11-03 09:49:46 4519
原创 [architecture]-AMBA AXI AHB APB学习总结
思考1、什么是AMBA、AHB、APB、ASB、AXI,它们各有什么特点?2、什么是AXI4、AXI4-Lite、AXI4-Stream、AXI5、AXI5-Lite?3、AMBA 4 规范? AMBA 3 规范? AMBA 2.0 规范?4、什么是ACE5、ACE5-LiteDVM、ACE5-Lite、ACE5-LiteACP、AXI5、AXI5-Lit?文章目录一、概念介绍1、AHB(the Advanced High-performance Bus)2、ASB(the Advanced .
2020-11-02 11:43:58 3360 1
嵌入式Linux C语言初学者项目实践:火车票订票系统
2023-04-12
GPD_TEE_TUI_Extn_Biometrics_API_v1.0_PublicRelease_2018_04_03.pdf
2021-08-05
GPD_TEE_Internal_Core_API_Specification_v1.3_PublicRelease.pdf
2021-08-05
ARM-gic官方文档资料打包下载-gicv2v3-gic500等.rar
2020-07-12
armv8指令详细介绍-官方pdf文件112页.rar
2020-07-12
基于英飞凌产品的汽车EPS方案介绍
2023-06-23
面向安全要求严苛的应用的飞思卡尔双核控制器系列
2023-06-23
汽车电动助力转向系统的研究与方案-英飞凌
2023-06-23
支持ASIL D 应用的安全集成硬件解决方案
2023-06-23
论文:函数信号发生器制作
2023-06-23
论文:单相电参数测量仪
2023-06-23
基于51单片机循迹智能小车
2023-06-23
C8051F005小车自动控制
2023-06-23
AT89C51红外避障小车
2023-06-23
电动车跷跷板-全国大学生电子设计竞赛
2023-06-23
电动智能小车(完整论文)
2023-06-23
python英文批量翻译成中文?
2021-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人