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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: L' ?7 l; w3 o; @% g8 Q+ w8 u
#include <linux/init.h>* g+ q: Q7 A2 a8 ?" I
#include <linux/module.h>
; G9 Z% F0 e% P( i* G7 J( W#include <linux/kernel.h>
/ ?% T- @7 T# ]6 `, X7 T2 p$ D#include <linux/types.h>
# [+ y. R3 ?( c% D9 G#include <linux/gpio.h>
: _$ U: U  J( p. r# f9 K; w#include <linux/leds.h>
7 i4 N" u+ y% s0 P#include <linux/platform_device.h>
0 r0 d3 L$ s0 a: h& g0 l7 {8 |* y
1 Q2 N, ^1 j! ?% ^2 t/ Y+ d1 d#include <asm/mach-types.h>. }1 R* v& k: ^; q4 P* [4 `7 r# M' Y
#include <asm/mach/arch.h>: r" W) m, t5 [" s$ }
#include <mach/da8xx.h>
3 O, A8 [' d$ F0 ^#include <mach/mux.h>- j4 O3 A. ^8 \/ z+ S9 w+ ]. m

/ K7 |$ p5 i, n8 ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ h9 O) U  ~2 j2 Y5 W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- U: X5 M- E9 r* ~4 ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 J* b1 s3 _9 Z& V1 t% ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( W7 ?+ K' R4 B  C& x) b) ?2 N
/ m: D' I7 c. s9 V+ A/* assign the tl som board LED-GPIOs*/
4 ?4 x: J+ m' a" V# O( k  Q0 [1 zstatic const short da850_evm_tl_user_led_pins[] = {3 _+ E# k" U% ?5 s/ U
        /* These pins are definition at <mach/mux.h> file */
" d; f/ q7 l) U  s% [4 K4 [( p1 _! i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ z6 {* X0 P" |4 h5 g& L        -10 D: b, P/ w5 W0 B# e
};
8 a! }& k% I( Z6 `. `' `; c" X- I5 g; _- J/ q2 _/ ?' f; ~
static struct gpio_led da850_evm_tl_leds[] = {
8 j3 q7 J: a; r$ T        {: A- s# c: D6 w9 m4 }
                .active_low = 0,: U$ {, u" X: w. Y
                .gpio = DA850_USER_LED0,% \) S( H1 H( C9 z
                .name = "user_led0",  G5 }: a4 t6 Y. E( ~
                .default_trigger = "default-on",4 E! ?( Y& h3 i
        },1 M2 z/ m7 l4 P4 {9 E( p1 e
        {, N" O- K/ f' h2 A* z
                .active_low = 0,6 Z% m7 I0 `+ |
                .gpio = DA850_USER_LED1,
2 Q5 B) @! A8 k' q                .name = "user_led1"," z8 i; V) H3 j
                .default_trigger = "default-on",& c3 @+ K6 \4 O$ {+ B9 Q
        },; w+ J+ ^  y1 R  \' J/ l; l. d% D: z
        {
% ]' q) C  Z$ m7 W* S                .active_low = 0,
5 n6 A, {3 d/ g( h, `                .gpio = DA850_USER_LED2,
9 H" D4 ?4 @) v; v9 M                .name = "user_led2",
4 X/ t) i: j( Z, V) a- H                .default_trigger = "default-on",8 U' g" e3 ?2 U- b* a0 e
        },
/ h; v7 c; ?% b' L/ E        {
7 L" C0 H+ R& c' \* q3 a5 y2 U* J                .active_low = 0,1 j' S( |  Q% Q% P2 ?* v' c. E( R! v
                .gpio = DA850_USER_LED3,0 z4 L( o) J5 I6 L, W- c
                .name = "user_led3",
2 n0 V% @9 B$ C( \$ i                .default_trigger = "default-on",
4 a2 q" S1 l8 {1 ^) O" m$ Q        },! d2 x* u$ L" P/ C! b# s
};3 g/ W# ~& k: i9 W8 G$ [
; b( a7 V) s) G6 h  M. E( m1 q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 M/ |$ T4 s, I! w2 G
        .leds = da850_evm_tl_leds,! V( e. D1 E( K, y* E( e7 i4 l$ s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' c7 ]7 g8 D7 u3 C/ f" }1 u$ C8 k};1 F0 w. k8 \/ l' w* f  l0 @

7 M7 m/ r" t% O. ~. F- X, Ustatic void led_dev_release(struct device *dev)! \! W7 V- \: s
{
# n& {) B, Q1 r9 J$ p};3 R) i' x" X: ^. b0 P
* r1 L9 E: f9 Y' f
static struct platform_device da850_evm_tl_leds_device = {
* b6 f+ c1 ?) C        .name                = "leds-gpio",
' g# K% f, u0 T" b- u( f4 e  [5 a        .id                = 1,/ I- ?' X: T  W: I. B
        .dev = {* s+ h! z. h' y$ ~( k
                .platform_data = &da850_evm_tl_leds_pdata,% d* _+ }& }2 j* b# f3 I" y: e! V7 R
                .release = led_dev_release,/ e! g1 Y$ M# @0 V& _  D) n
        }' G4 m$ F4 H: X
};' Q0 d1 ]- X3 r. k
2 |3 s. `) x. V1 C, ~0 l' ?: {
static int __init led_platform_init(void)
  F$ L# _/ O2 n" H2 _1 R) n{, ~. {2 C/ R; L* Z1 L7 [1 q( @9 Q4 e
        int ret;
3 K) c; R/ c/ ]/ L( y#if 0* j# R8 r8 m& l3 j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ k% F# I" Y* H5 x
        if (ret)" j2 D. q2 b. V2 r' }
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 |) ?0 A3 `0 W! N  |
                                "%d\n", ret);
  L4 p6 k: A( K% A#endif
" {$ Z) I) W6 `3 O" g: E$ p# K        ret = platform_device_register(&da850_evm_tl_leds_device);
3 D( y6 \/ j4 a" Q+ R/ E  G3 v        if (ret)
" w$ b+ y; c, }                pr_warning("Could not register som GPIO expander LEDS");
8 Q( y( A* o! Y& Z) O0 f* [( W5 l        else) e3 i& n$ ?# ?
                printk(KERN_INFO "LED register sucessful!\n");
1 A. Y- S8 V) Y
8 }1 O7 m# v( |& F7 T# e( q- B        return ret;
- n! b/ y8 Z, U/ }, ?}
6 z1 C9 d, i5 _0 q; C  H
% S1 z5 u  T( C9 z( M/ Wstatic void __exit led_platform_exit(void)
* ]6 N3 L, u+ h8 q& N5 B$ z# c' E{- l' A$ f* l  l/ w
        platform_device_unregister(&da850_evm_tl_leds_device);
) Z# P6 h5 Y8 ^8 Q2 k
7 v. }" r" z9 j, [$ T. L        printk(KERN_INFO "LED unregister!\n");& K9 K2 j4 W* j, U' G
}# Q$ q# D5 M  y1 O7 L$ n
) o4 I# b7 F. X7 V2 `% F
module_init(led_platform_init);, [0 j* \1 {2 t6 }) y+ e7 k5 e
module_exit(led_platform_exit);
+ b1 }* ~! K- f( W, y/ A6 m) F( V1 F( d5 J. t" o2 m
MODULE_DESCRIPTION("Led platform driver");
& y4 q. o( a% k, ]MODULE_AUTHOR("Tronlong");
- p; Z3 G- W' F$ sMODULE_LICENSE("GPL");
+ S- \$ ]' W* k$ D* J  {/ T. b
9 Q1 N- j% X6 `* n* O4 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-22 17:22 , Processed in 0.041208 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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