程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9650|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# Z/ U3 l0 b) F) r7 `8 t
#include <linux/init.h>4 G6 {- {: i* l0 N) a1 e
#include <linux/module.h>* Q3 X8 \% a  ^6 k+ j. I0 B/ @3 Z4 ~3 c
#include <linux/kernel.h>
( `) v, I3 O8 I: e# q+ ?#include <linux/types.h># K2 \. p7 Z3 f6 n( X+ z' i
#include <linux/gpio.h>
$ c: l( I: K2 O0 d: B$ o: N#include <linux/leds.h>
& J6 g1 y( g8 a#include <linux/platform_device.h>9 D% v7 {$ Q: N6 c) H

9 _6 Z7 n% m* {6 [5 w3 I, f#include <asm/mach-types.h>
, }$ {8 J( J- R#include <asm/mach/arch.h>" R9 J1 B) a( B2 ]/ n% x
#include <mach/da8xx.h>
/ O1 z6 E) q4 r9 F* d1 x* i#include <mach/mux.h>
3 K( `. M0 b' h" j) H, G
( m5 A0 L: L! d9 U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). F7 T7 Q- n$ f2 D. i# D# m9 a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) s& p3 A; F& ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) c, @+ F( d4 A/ F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 U: |5 t- n. t1 Q$ J, S2 V

7 ?8 \0 _" O2 ^: R/* assign the tl som board LED-GPIOs*/
7 h9 g; p8 i& }' r. astatic const short da850_evm_tl_user_led_pins[] = {
- H( x1 P+ Z, q- W% p8 }        /* These pins are definition at <mach/mux.h> file */8 T" w, s' }, c% Q1 ?* H- k/ h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" l0 x+ }& \) Z% ]8 `" F        -1
, z7 D5 m- C: r% M" O  [7 U% [( Z};3 M% I3 b& ^; k* a0 j5 X. n# W* g+ J

; K% q- o+ ?2 L. O3 p4 estatic struct gpio_led da850_evm_tl_leds[] = {
$ D' m1 A% K+ E8 Z        {
& f8 z: D  J3 u7 r                .active_low = 0,% {4 L8 g& p7 M4 \( E) L
                .gpio = DA850_USER_LED0,6 c+ c2 _! k$ c6 y7 X
                .name = "user_led0",  }( r% U2 ?  b. C& e
                .default_trigger = "default-on",
/ A  ]3 K0 E2 F        },
5 }2 \$ G* V7 H/ U' \        {
/ x: |7 k4 ~5 c" L5 x& _                .active_low = 0,
" O8 b( ?) ]3 L9 D                .gpio = DA850_USER_LED1,  [) k. W2 f4 [4 N9 ]  B
                .name = "user_led1",
# c9 M5 t" r$ x# ]+ o+ n                .default_trigger = "default-on",
/ c7 s0 i  f, l0 u* D! o& D        },
" u3 P' j+ r' O& n7 P: ~        {! J/ O1 p! Q" T$ U' I- |0 y3 ^8 R
                .active_low = 0,
. K% [: s. ?1 H3 t7 f7 G5 ]                .gpio = DA850_USER_LED2,
& T+ f* ], w; v0 ]; ?6 J+ A% E5 v' K                .name = "user_led2",
; b9 i! t1 Z9 h+ ]                .default_trigger = "default-on",+ ]3 l* s3 }# B2 @/ ^2 {
        },4 ^  z5 Y) X) j3 ~  g" W
        {1 v# M: ?8 ?) A) m( Z
                .active_low = 0,- f6 ?9 T4 A5 U" o- ^( h1 a# {
                .gpio = DA850_USER_LED3,/ Z$ N+ j4 i' I3 j+ Z/ U
                .name = "user_led3",. V/ o, ?) C9 A1 o
                .default_trigger = "default-on",
( i$ F# ~& K2 J0 K4 z0 w8 x        },
- J4 r! w! p  X7 r% P$ j. S};" G4 t4 B$ a3 ]$ z/ ~' U

* V; e% s& |- g4 Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  i' H) N$ H9 z+ o3 [1 p2 [3 [        .leds = da850_evm_tl_leds,
, }- }' `) O6 A( K9 Q7 a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% [: R& x7 x) C9 L8 w};
) ^4 o$ w5 ^& s. H( |$ t
7 G. |8 S# t+ t- L7 ostatic void led_dev_release(struct device *dev)
  ~3 V. D, h+ T- B{  q; c/ e: l3 ]  L
};
4 u$ p% @7 y! ^' v) d5 e& b9 Z# d) [6 m: q4 z' [4 @
static struct platform_device da850_evm_tl_leds_device = {
7 W' @6 S4 N/ k        .name                = "leds-gpio"," P6 H  I! r& M, g; N
        .id                = 1,
' `: P+ i" C5 E1 q3 X        .dev = {2 j- Q( U) Q; J2 Z* N; ]' L
                .platform_data = &da850_evm_tl_leds_pdata,
# d: x7 @& q/ Q$ p0 }2 I/ y: j                .release = led_dev_release,3 C* I- T& T. e) B- E3 U* ?
        }
; q: T- c$ Y7 T) }};* J2 [+ }1 \( Y# W, {$ J
! i+ a- f; K- H- b0 ]! t
static int __init led_platform_init(void)4 K: L; o% f! I5 P6 u7 G- g5 ~; V, ^6 U
{
9 a! c2 E1 j$ s3 U- G+ k        int ret;
; v, {: J3 N1 b$ c$ G2 y#if 0* ^( Y+ r6 B1 x5 G3 f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. l3 B  D/ s1 Y0 C7 f
        if (ret): ]* i+ l0 |" {: g; _  I4 `9 i1 ?: ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' Q2 P$ \5 Y' U5 ]                                "%d\n", ret);/ H9 t# k: s$ s. y6 v1 @1 M' S: x
#endif
- Q% Y1 Z4 z. O; B. `3 ^        ret = platform_device_register(&da850_evm_tl_leds_device);
0 ]  I; ]1 T/ V4 s1 g        if (ret)
& {& Z' S0 T6 q: c                pr_warning("Could not register som GPIO expander LEDS");! Q$ E6 n- g3 v- {' U2 {
        else" l  g# B3 w7 W, E
                printk(KERN_INFO "LED register sucessful!\n");
; ~' h  o; m* |, \' `( a% Z& i$ m, O$ U5 ^2 W+ ~) z3 U
        return ret;
5 t+ a. g* }* E}
# O# F3 `1 n- ^; |. T  H3 G% |* y( z6 |2 z) {  v8 f
static void __exit led_platform_exit(void)9 q8 |; h* u( U" e2 _; s" m
{" n) Y% S  r$ g% K
        platform_device_unregister(&da850_evm_tl_leds_device);
; @" g* G8 Q) }# J
3 H4 t; X$ A( b. ^        printk(KERN_INFO "LED unregister!\n");
7 f) x$ U5 @# j0 L7 Z0 M}
. k5 B5 m7 U$ }2 X2 b5 r, c: t/ b# R; u/ V
module_init(led_platform_init);
4 x, i2 G! E- l0 Z1 V) @module_exit(led_platform_exit);
2 k* z5 U2 ?( h0 |0 K/ C
9 o2 L. h0 l" p' d, x# Y  T) TMODULE_DESCRIPTION("Led platform driver");
" L0 c- Y# z; JMODULE_AUTHOR("Tronlong");; n& Q; H% n5 g/ Q- ], A: r1 N( i
MODULE_LICENSE("GPL");- [  T6 Y9 G4 z! j6 a/ I8 t! v

$ h, E5 q3 j3 X/ U9 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-23 06:44 , Processed in 0.041279 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表