小编Ηλε*_*κός的帖子

将vi设置为GHCi中的编辑器

如何让vi编辑模式在GHCi中工作?

我使用的是版本7.10.3.

我试过了Prelude> :set editor vi,但没有效果.

我也有这些台词~/.inputrc.

set editing-mode vi
set keymap vi
Run Code Online (Sandbox Code Playgroud)

.

vim haskell ghci archlinux read-eval-print-loop

12
推荐指数
1
解决办法
1881
查看次数

修复arrowShaft(图表库)

我使用和制作了一个数据存储符号.中间有红点的那个.B.differenceB.union

dataStorage :: Diagram B
dataStorage =  (strokePath $ B.difference Winding  combined  block1) # translateX (-0.3)
  where block1 = (circle 0.5)  # scaleX 0.5 # translateX (-1)
        block2 = rect 2 1
        block3 = (circle 0.5)  # translateX (1)
        combined = B.union Winding $ block2 <> block3
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我现在已经尝试了好几个小时但是不能Previous Estimate在这个符号和内部之间写出 一个箭头Signal Decomposition (SSA).目标是从符号外部的中心开始绘制箭头.欢迎任何帮助.非常感谢你.

编辑1:添加了想要的结果.

在此输入图像描述

这是完整的代码.

{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE FlexibleContexts          #-}
{-# LANGUAGE TypeFamilies              #-}

module FlowChartTR where

import System.Process
--import …
Run Code Online (Sandbox Code Playgroud)

haskell haskell-diagrams

7
推荐指数
1
解决办法
138
查看次数

为什么STM32CubeIDE生成了2个链接描述文件?

我正在学习 STM32 裸机编程,在此过程中我使用 STM32F429ZI mcu。我在互联网上阅读了很多示例,它们都只使用一个链接描述文件。我在想,如果这些示例非常适合我的 MCU,那么链接器脚本在功能方面将与 STM32CubeIDE 生成的链接器脚本相同(?)。

现在我的问题是,当我使用 STM32CubeIDE 生成项目时,我得到了 2 个链接器脚本,但是STM32F429ZITX_FLASH.ld我检查构建日志时,仅使用了一个链接器脚本,即. STM32CubeIDE 使用一两个链接器脚本来构建项目吗?如果它只使用一个,那么为什么它生成两个链接描述文件?STM32F429ZITX_RAM.ldSTM32F429ZITX_FLASH.ld

下面,我发布了构建日志。这是我在构建日志中找到的命令:

arm-none-eabi-gcc -o "STM32F429ZI-Test.elf" @"objects.list"   -mcpu=cortex-m4 -T"/home/biomed/STM32CubeIDE/workspace_1.4.0/STM32F429ZI-Test/STM32F429ZITX_FLASH.ld"
Run Code Online (Sandbox Code Playgroud)

项目浏览器

arm-none-eabi-gcc -o "STM32F429ZI-Test.elf" @"objects.list" -mcpu=cortex-m4 -T"/home/biomed/STM32CubeIDE/workspace_1.4.0/STM32F429ZI-Test/STM32F429ZITX_FLASH.ld"

14:10:36 **** Build of configuration Debug for project STM32F429ZI-Test ****
make -j8 all 
arm-none-eabi-gcc "../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DDEBUG -DSTM32F429xx -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d" -MT"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o"
arm-none-eabi-gcc "../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c" -mcpu=cortex-m4 -std=gnu11 …
Run Code Online (Sandbox Code Playgroud)

linker gcc build stm32 stm32cubeide

5
推荐指数
1
解决办法
4427
查看次数

如何使用randomRIO生成无限数量的随机数?

我正在尝试使用randomRIO生成无限数量的随机数。

import System.Random

g :: IO [Integer]
g = do
  n <- randomRIO (1,6) :: IO Integer
  f <- g
  return (n : f)
Run Code Online (Sandbox Code Playgroud)

它可以编译但在运行时挂起。

haskell

3
推荐指数
2
解决办法
1003
查看次数

为什么需要内存别名?

我对 ST Microelectronics 的这种架构设计感到困惑。以STM32F407VG为例。程序加载到闪存中的地址 0x08000000。该地址映射到地址 0x00000000,因为复位后处理器首先查看 0x00000000。为什么不让闪存首地址为 0x00000000。内存别名的优点是什么?

在此处输入图片说明

arm processor cpu-architecture stm32 stm32f4

3
推荐指数
1
解决办法
540
查看次数

代码仍然编译,尽管值构造函数没有给出参数.

data World = Green Double | Red Double 
  deriving Show

ws = [Green, Red]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的Green,Red应该分别给出一个参数.我希望GHC会在编译时抛出错误,但事实并非如此,编译代码.这是正常的吗?

haskell

1
推荐指数
1
解决办法
47
查看次数