fangkaixin 发表于 2024-4-17 13:25

【瑞米派 Remi-Pi 】开发环境搭建与内核更新

<div class='showpostmsg'> 本帖最后由 fangkaixin 于 2024-4-17 18:57 编辑

## 一、搭建开发环境

官方提供了两种开发方式,如下:

### 使用Yocto构建开发板镜像

1. **拷贝源码包**:将`myir-renesas-yocto.tar.bz2`源码包拷贝到本地环境并解压,或通过git拉取源码。
2. **设置环境变量**:执行 `source myir-remi-1g-environment.sh`。
3. **构建配置**:
                DISTRO=poky MACHINE=myir-remi-1g
                source layers/meta-myir-remi/scripts/myir-remi-1g-environment.sh build-remi-1g
4. **构建镜像**:运行 `bitbake myir-image-full -k`。

### 直接使用源码编译
1. **拷贝源码与工具链**:将`myir-renesas-linux.tar.bz2`与`sdk.tar.bz2`(编译工具链)分别拷贝到本地并解压。
2. **设置环境变量**:执行 `source /path/to/environment-setup-aarch64-poky-linux`。
3. **编译**:
                make distclean
                make ARCH=arm64 mys_g2lx_defconfig
                make ARCH=arm64 Image dtbs -j16

## 二、通过以太网SCP更新设备树和Linux内核镜像
### 更新方法验证
1. **挂载分区**:执行 `mount /dev/mmcblk0p1 /mnt`。
2. **替换文件**:使用SCP命令将新编译出的文件替换到`mmcblk0p1`分区下:
                scp root@192.168.40.123:/home/myir/linux/arch/arm64/boot/Image /mnt/
                scp root@192.168.40.123:/home/myir/linux/arch/arm64/boot/dts/myir/mys-rzg2l-*.dtb /mnt
3. **重启系统**:`sync`, `reboot`
4. **查看,更新成功**


### Preempt RT 实时内核
1. **下载实时补丁**: 下载时选择最接近内核版本的即可,下载链接:`https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.9/older/`
2. **为内核打入实时补丁**:
                gunzip patch-5.10.83-rt58.patch.gz
                patch -p1 < patch-5.10.83-rt58.patch
3. **更新编译选项**:`make ARCH=arm64 menuconfig` (使用了前次编译后.config文件)

4. **编译**:`make ARCH=arm64 Image dtbs -j16`
5. **更新内核和设备树**:通过以太网scp更新
6. **验证以及实时性能测试**



## 三、编译、部署与运行HelloWorld程序
hello_world.c
```c
#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}
```
Makefile
```makefile
# Makefile for HelloWorld application

# Project settings
PROJECT_NAME := hello_world
SRC_FILE := hello_world.c
TARGET_ARCH := arm64
REMOTE_USER := root
REMOTE_IP := 192.168.40.123
REMOTE_HOME_DIR := /home/root/

# Compiler and flags
CFLAGS := -Wall -O2

# Remote commands
SCP := scp
SSH := ssh

all: $(PROJECT_NAME)

$(PROJECT_NAME): $(SRC_FILE)
        $(CC) $(CFLAGS) $^ -o $@

deploy:
        $(SCP) $(PROJECT_NAME) $(REMOTE_USER)@$(REMOTE_IP):$(REMOTE_HOME_DIR)

run:
        $(SSH) $(REMOTE_USER)@$(REMOTE_IP) 'cd $(REMOTE_HOME_DIR);chmod +x $(PROJECT_NAME); ./$(PROJECT_NAME)'

clean:
        rm -f $(PROJECT_NAME)

.PHONY: all deploy run clean
```

1. **编译**:在终端中执行 make 命令,编译生成hello_world可执行文件。
2. **部署**:执行 make deploy,将编译好的hello_world程序通过SCP上传到目标设备。

3. **运行**:执行 make run,通过SSH远程登录目标设备并运行hello_world程序。


</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                               
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

lugl4313820 发表于 2024-4-17 18:27

这makefile的知识得学习学习,非常好呀!

fangkaixin 发表于 2024-4-17 18:52

lugl4313820 发表于 2024-4-17 18:27
这makefile的知识得学习学习,非常好呀!

<p>感谢支持<img height="52" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan05.gif" width="48" /></p>

秦天qintian0303 发表于 2024-4-18 09:10

<p><code>run:</code></p>

<p><code>$(SSH) $(REMOTE_USER)@$(REMOTE_IP) &#39;cd $(REMOTE_HOME_DIR);chmod +x $(PROJECT_NAME); ./$(PROJECT_NAME)&#39;</code></p>

<p><code>这样的命令怎么输入快捷,真得一点一点打吗</code></p>

fangkaixin 发表于 2024-4-19 08:45

秦天qintian0303 发表于 2024-4-18 09:10
run:

$(SSH) $(REMOTE_USER)@$(REMOTE_IP) &#39;cd $(REMOTE_HOME_DIR);chmod +x $(PROJECT_NAME); ./$( ...

<p>可以试试智能补全类的插件</p>

chejm 发表于 2024-4-21 20:24

<p>楼主分享的技术知识内容详实,图文并茂,值得收藏学习</p>

fangkaixin 发表于 2024-4-22 15:57

chejm 发表于 2024-4-21 20:24
楼主分享的技术知识内容详实,图文并茂,值得收藏学习

<p><img height="52" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan05.gif" width="48" /></p>
页: [1]
查看完整版本: 【瑞米派 Remi-Pi 】开发环境搭建与内核更新