2014-03-06 8 views
0

ARM 프로세서의 Linux 부팅 프로세스에 대해 배우고 있으며 U-boot가 플래시에서 부팅 한 다음 u-boot 코드가 스택 초기화와 같은 실행 환경을 설정하기 위해 RAM을 초기화하고 모두 및 자체 위치를 재 지정한다는 것을 알았습니다.플래시를 누가 초기화합니까?

내 질문에 누가 플래시를 초기화하여 u-boot 코드를 실행할 수 있습니까?

NOR 플래시 또는 NAND 플래시에서 부팅하는 데 차이가 있습니까?

NOR 플래시에서 부팅하는 것이 NAND 플래시에서 부팅하는 것보다 빠릅니까?

+0

* 주제를 벗어난 *로 닫지는 않겠지 만 너무 광범위합니다 *. 특정 칩에는이를 수행하는 메커니즘이 있습니다. 가장 낮은 공통 분모는 이미 프로그래밍 된 납땜입니다. 그러나, 그것은 대략 10+ 년 전에 호의에서 나갔다. 정말로 칩에 달려 있습니다. –

+0

* "ARM 프로세서의 Linux 부팅 프로세스에 대해 배우고 있습니다."* - 사용자는 ARM 프로세서에서 사용하는 많은 부팅 구성표 중 하나만 설명합니다. U-Boot를 SDRAM에로드하는 ARM 시스템이 있으며 U-Boot는 절대 재배치되지 않습니다. 이러한 시스템 (예 : Atmel SAM9)에는 Linux (또는 어떤 OS)가로드되기 전에 부트 로더가 3 단계까지있을 수 있습니다. – sawdust

+1

나는이 질문을 다시 읽고 많은 계획과 부트 로더가있는 톱밥에 동의한다. 나는 우리가 당신이 드램을 가지고 있다면 램을 준비하는 것과 관련된 여러 단계에 동의 할 것 같아.하지만 리눅스 전에 자랄 필요가 있을지 모르지만 그게 당신이 uboot에서해야한다는 것을 의미하지는 않는다. 디바이스 트리가 나오기 전에 리눅스를 부팅하는 것은 꽤 사소한 일이었고 리눅스 부팅을 위해 uboot만큼 복잡하고 큰 이유가 전혀 없었습니다. 디바이스 트리의 유무에 상관없이 우리의 솔루션은 uboot 유형의 로더를 필요로하지 않기 때문에 부팅 할 수 있습니다 없이. –

답변

1

자연히 누군가가 플래시를 처음 프로그래밍해야합니다. 그리고 각 보드 디자인은 실제로 일어나는 방법을 결정합니다. 때로는 부품을 납땜하기 전에 프로그램하기도하고 때로는 백도어를 통해 프로그래밍 할 수있는 커넥터가있는 경우도 있습니다. 때로는 그렇지 않습니다. 때로는 보드의 프로세서 나 다른 하드웨어에 일반적인 부트 플래시 등을 프로그래밍하는 데 사용할 수있는 다른 종류의 부트 로더가 있습니다.

NOR 또는 NAND는 일반적으로 차이가 크지 않지만 최신 플래시의 가장 큰 문제점은 읽기 방해에 대한 걱정. 플래시 읽기는 쓰기보다 빠르며 쓰기 속도와 밀도 및 비용면에서 많은 노력이 필요하거나 최소한 필요하므로 읽기와 쓰기 속도가 그다지 중요하지 않습니다. 읽기 속도에 문제가 있다면 부트 로더를 가능한 한 빨리 램에 복사하고 거기서부터 실행하십시오.

+0

@ dwelch에 응답 해 주셔서 감사합니다. 일단 보드 전원을 켜고 Flash를 모두 사용할 준비가되었으며 프로세서와 플래시 간의 통신은 주소 및 데이터 버스를 통해 이루어 지지만 NOR 플래시의 셀 배치가 더 좋습니다 u- 부츠를 부팅하기위한 선택권. 그럴리가요? –

+0

나는베이스베이스가 있고 기반이없는 보드가 있고 둘 다 작동하며 (아직) 다른 것에 대해 신경을 쓸 이유가 없다. 그것은 칩과 보드의 디자인에 따라 인터페이스 작동 방식에 따라 달라집니다. 예를 들어 칩과 보드를 부팅 할 수있게하려면 전원을 켜고 작동하도록 설계해야합니다. 일단 당신이 그 플래시를 얻는 닭고기와 달걀 문제가 처음으로 프로그램되면 (버깅이 아닌 코드로, 크래시가 나지 않는 코드로). –

+0

내 직업은 모든 보드의 보드 엔지니어와 협력하여 플래시가 우리가 원하는 방식이고 벽돌 보드에 납땜 인두가 필요하지 않은지 확인합니다. 나는 ti와 marvell, calvium 및 다른 uboot 가능 칩이 어떻게 작동하는지, 그리고 비글과 open-rd와 panda 및 다른 보드가 어떻게 설정되었는지 볼 시간을 가지지 않았다. 플래시를 쓰레기로 그렇지 않으면 보드를 벽돌로 만든다. –