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

阀门网站建设短视频制作自学教程

阀门网站建设,短视频制作自学教程,梁园区官方网站,泰安专业网页设计培训1 使用的是bios 中断#xff0c; 每次进行检测都会返回一块 内容。并且标志上#xff0c;这块内存是否可用。 接下来是代码#xff1a; 首先是构建 一个文件夹#xff0c; 两个文件。 types.h 的内容。 #ifndef TYPES_H #define TYPES_H// 基本整数类型#xff0c;下面的…1 使用的是bios 中断 每次进行检测都会返回一块 内容。并且标志上这块内存是否可用。 接下来是代码 首先是构建 一个文件夹 两个文件。 types.h 的内容。 #ifndef TYPES_H #define TYPES_H// 基本整数类型下面的写法和视频中的不同加了一些宏处理 // 主要是因为将要使用newlib库newlib有同样使用typedef定义uint8_t类型 // 为了避免冲突加上_UINT8_T_DECLARED的配置//这里定义的是一些数据类型 #ifndef _UINT8_T_DECLARED #define _UINT8_T_DECLARED typedef unsigned char uint8_t; #endif#ifndef _UINT16_T_DECLARED #define _UINT16_T_DECLARED typedef unsigned short uint16_t; #endif#ifndef _UINT32_T_DECLARED #define _UINT32_T_DECLARED typedef unsigned long uint32_t; #endif#endif boot_info.h 的内容 #ifndef BOOT_INFO_H #define BOOT_INFO_H#include types.h#define BOOT_RAM_REGION_MAX 10 // RAM区最大数量//检测内存时用到的结构体 typedef struct _boot_info_t {// RAM区信息struct {uint32_t start;uint32_t size;}ram_region_cfg[BOOT_RAM_REGION_MAX];int ram_region_count; }boot_info_t;#endif // BOOT_INFO_H然后是对于 头文件的包含。 loader.h #include comm/types.h #include comm/boot_info.h loader_16.c 中包含头文件并且定义结构体。 #include loader.hstatic boot_info_t boot_info; // 启动参数信息 接下来是对 顶层 cmake 的修改。 这里不用修改 已经添加了 顶层source 目录。 2 一些基本的知识。 网上的截图 命令的格式是这样的。 举例子。 就了解到这种程度就可以了。 3 什么是 ESDI 什么是DI 寄存器呢 在熟悉一遍。 ------------------------------------------------------------------------------------------------------------------------------------ 接下来是 代码部分。 这里我遇到了一个问题 就是 头文件一直报错。 报错位置是 typedef unsigned int  uint32_t  部分。 我觉得 跟 cmake 有关。 最后的解决方案是 自己写了个头文件 但是 课程的头文件依然保留着 只是 里面没有内容。 boot_info.h  设置一个结构体用于存放探测到的 内存容量。 #ifndef BOOT_INFO_H #define BOOT_INFO_H#include types.h#define BOOT_RAM_REGION_MAX 10 // RAM区最大数量//检测内存时用到的结构体 typedef struct _boot_info_t {// RAM区信息struct {uint32_t start;uint32_t size;}ram_region_cfg[BOOT_RAM_REGION_MAX];int ram_region_count; }boot_info_t;#endif // BOOT_INFO_H types.h 是 一些宏定义。 #ifndef TYPES_H #define TYPES_Htypedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t;#endif loader.h 什么也不写 就是这个头文件出问题的。 myloader.h 是自己写的头文件。 这个结构体是 int15 中断需要的。 #ifndef __MYHEADER_H #define __MYHEADER_H#include comm/boot_info.h #include comm/types.htypedef struct SMAP_entry {uint32_t BaseL; // base address uint64_tuint32_t BaseH;uint32_t LengthL; // length uint64_tuint32_t LengthH;uint32_t Type; // entry Typeuint32_t ACPI; // extended }__attribute__((packed)) SMAP_entry_t;#endif 探测函数 再 loarder_16.c 中。 static void detect_memory(void) {uint32_t contID 0;SMAP_entry_t smap_entry;int signature, bytes;show_msg(try to detect memory:\r\n);// 初次EDX0x534D4150,EAX0xE820,ECX24,INT 0x15, EBX0初次// 后续EAX0xE820,ECX24,// 结束判断EBX0boot_info.ram_region_count 0;for (int i 0; i BOOT_RAM_REGION_MAX; i) {SMAP_entry_t * entry smap_entry;__asm__ __volatile__(int $0x15: a(signature), c(bytes), b(contID): a(0xE820), b(contID), c(24), d(0x534D4150), D(entry));if (signature ! 0x534D4150) {show_msg(failed.\r\n);return;}// todo: 20字节if (bytes 20 (entry-ACPI 0x0001) 0){continue;}// 保存RAM信息只取32位空间有限无需考虑更大容量的情况if (entry-Type 1) {boot_info.ram_region_cfg[boot_info.ram_region_count].start entry-BaseL;boot_info.ram_region_cfg[boot_info.ram_region_count].size entry-LengthL;boot_info.ram_region_count;}if (contID 0) {break;}}show_msg(detect ok.\r\n); }
http://www.pierceye.com/news/804050/

相关文章:

  • 自己怎么创建免费网站wordpress使用插件
  • 做一个个人主页的网站怎么做商城小程序模板
  • 网站站内链接怎么做wordpress文章样式插件
  • 网站大全浏览器济南免费网站建设优化
  • 招聘网站入职分析表怎么做网站关键字挖掘
  • 锡盟本地网站建设网站欢迎页面代码
  • 有做网站吗个人站长网站
  • 免费网站模板下载图怪兽在线制作
  • 黑龙江网站设计公司广告海外推广
  • 农产品网站建设策划国际新闻最新10条
  • 南通制作网站公司开发公司与物业公司移交协议
  • 做网站为什么很复杂最简单的免费网站制作模板
  • 高端网站公司书画工作室网站模板网站建设
  • 招标网站免费平台永州做网站公司
  • 企业网站建设 cmsphp网站建设方案
  • 自适应网站建设沈阳潍坊制作网站的公司
  • lamp网站开发黄金组合下载宣传页模板
  • 精通网站建设100全能建站密码摄影学习网站
  • 重庆如何软件网站推广陕西省诚信建设示范网这个网站
  • 怎样做关键词网站wordpress建站购买
  • app开发模板网站老网站备案密码错误
  • 北京展示型网站建设价格seosem是指什么意思
  • 网站开发费用构成论坛静态网站源码
  • 百度怎么把自己网站展现在百度森动网网站建设好吗
  • 城市生活网官方网站app成都设计院
  • 移动网站开发实训报告清远企业网站建设
  • 手机版网站如何做陕西城乡建设网站
  • 大连网站建设事件营销的特点
  • 做语音聊天网站要多少钱app界面设计模板素材免费
  • 设计网站专题页包括那些项目个人做网站要买什么域名