- 博客(12)
- 资源 (9)
- 收藏
- 关注
原创 nuttx-OS启动前的准备工作
程序的基本编译过程为:预处理、编译成汇编语言、汇编成机器指令、链接成可执行文件,链接依赖于链接脚本,使用链接脚本来进行更复杂的地址设置,包括了代码段,数据段,bss段等,nuttx就使用ARCHSCRIPT宏来指定链接文件,下面以nucleo-l432kc为例,进行跟踪。nuttx/boards/arm/stm32l4/nucleo-l432kc/scripts/l432kc.ldMEMORY{ flash (rx) : ORIGIN = 0x08000000, LENGTH = 256.
2022-02-10 20:31:10 428
原创 nuttx-app的编译和执行原理
首先阅读apps/readme.md## Built-In ApplicationsNuttX also supports applications that can be started using a name string. Inthis case, application entry points with their requirements are gatheredtogether in two files:- `builtin/builtin_proto.h` – ...
2022-02-10 17:31:04 899
原创 nuttx-第一个app demo
应用开发,与ucos、freeRTOS等完全不一样,看起来更像是linux的方式,os与app独立开发,但是从单片机不具备MMU这一点就能判断出来,假的就是假的,即便是从文件夹结构上看,实现了app和os的分离,实际上已经是个障眼法,大概率是采用了编译技巧,实现了形式上的app和os独立。下面基于hello创建一个demo。cp -a apps/examples/hello apps/examples/democd apps/examples/demo;mv hello_main.c demo_
2022-01-29 13:19:38 809
原创 nuttx-环境搭建
尽管nuttx主要遵循Posix 和 ANSI 标准,但是毕竟向下支持到了STM32F1系列的芯片(不带MMU),所以这个操作系统本质上还是一个微操作系统。下面从helloworld开始。官网:Homehttps://nuttx.apache.org/Downloads下载源码(用不到):DownloadsProject Downloads pagehttps://nuttx.apache.org/download/文档链接:NuttX Documentation — NuttX lates
2022-01-29 11:36:31 2128
原创 nuttx-概述
现在国产的华大HC32L系列低功耗做的也相当优秀,虽然驱动代码和芯片的一些设计不尽如人意,但是该有的东西都有了,基本的功能也不含糊,一些低功耗产品也可以直接替换,主要是可以大大降低成本,毕竟国产芯片大家都不用怎么发展。早期基于MSP430系列、STM32系列、EFM32系列、AT91SAM9X、imx6ul系列做各种物联网产品,近几年国芯片慢慢崛起,加上ST芯片价格暴涨,更是让国产芯片赢得了难得的发展机会,近两年利用业余时间,也研究了国产的瑞芯微rk系列,兆易GD32系列、华大的HC系列等。
2022-01-28 20:06:38 3357
原创 Android快速编译镜像
make bootimage 编译bootimage make vendorimage 编译 vendorimage make dtboimage dtbo ninja快速编译系统(前提是编译部分的Android.mk没有改变,否则需要重新编译生成ninja文件)1.全编译源码系统,生成ninja文件和各种工具2.创建alias nj$ cat ~/.bashrc | grep njalias nj='./prebuilts/build-tools/linux-.
2022-01-28 17:53:06 2069
原创 Android Verified Boot
Android Verified Boot,验证程序用来保护用户使用软件在设备上运行的完整性。它通常从设备固件的只读部分开始,该部分加载代码并仅在密码验证代码是真实的且没有任何已知的安全缺陷之后执行。AVB是经过验证的引导的一种实现。BOARD_AVB_ENABLE 默认为true,可以设置为false关闭avb。1.avbtool工具1.1 位置HOST_OUT_ROOT := $(OUT_DIR)/hostHOST_OUT := $(HOST_OUT_ROOT)/$(HOST_OS.
2022-01-28 17:51:37 5028
原创 Android.mk与Android.bp
转换mk文件到bp文件$ out/soong/host/linux-x86/bin/androidmk Android.mk > Android.bp 编译不同类型的模块编译成 Native 动态库Android.mkinclude $(BUILD_SHARED_LIBRARY)Android.bpcc_library_shared {......}编译成 Native 静态库Android.mkinclude $(BUILD_STATIC_LIBRARY
2022-01-28 17:45:37 1488
原创 AIDL-JNI-HIDL
Android项目开发经常会遇到各种概念性的技术。AIDL(Android Interface definition language) Android中的一种IPC(Inter-Process Communication)方式,基础的应用就是在自己的APP里绑定一个其他APP的service,与其他APP进行交互JNI(Java Native Interface) JNI是一种实现Java语言与C/C++语言交互的一种技术,是Java提供的一种接口规范,但是在...
2022-01-28 17:44:52 3655
原创 linux下malloc()、kmalloc()、kzalloc()、vmalloc()简介
一、用户空间内存分配 malloc():用于在用户空间动态申请内存,对应的内存释放函数是 free()。内存动态申请使用完毕后,需要及时释放,否则连续的分配,造成内存泄漏。二、内核空间内存分配 常用的三个分配函数为kmalloc()、kzalloc()、vmalloc(),当然还有其他的分配函数,这里暂不讨论。 kmalloc:用于申请的内存空间位于物理内存映射区域,物理上是连续的,相对于物理地址,这里所谓的空间地址与真实的物理地址有一个固定的偏移量,转换关...
2020-08-03 11:54:08 525
原创 linux线程调度方式测试总结
总结:对三种线程调度方式进行测试。1.SCHED_OTHER:分时调度策略,为默认方式,凡是采用本模式的线程,线程优先级会强制为0,通俗点将,工作在本模式下的线程,都在同一优先级下。所谓的“分时调度策略”,可以理解为线程执行一次后主动放弃CPU,线程调度一次,执行下一个线程。测试代码如下:#include <stdio.h>#include <stdlib.h>...
2019-01-02 13:50:15 1325 1
科维PLC内核二次开发中文手册
2018-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人