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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. t& X( o% k$ E
#include <linux/init.h>
; q9 N3 \4 ~3 G% B) L#include <linux/module.h>8 v+ m; P6 D* Z
#include <linux/kernel.h>
: n3 o, p* f7 D% z#include <linux/types.h># I( Q6 ^  w1 M
#include <linux/gpio.h>4 X0 k' D5 t( L- G
#include <linux/leds.h>
4 v4 y/ C. }' Q4 y#include <linux/platform_device.h>. Q4 p2 r8 A" w7 @, C
6 }9 X' P$ i. E( q+ Z% c
#include <asm/mach-types.h>% `) ~; `0 n5 y  d/ w
#include <asm/mach/arch.h>3 t3 x9 X* G3 \3 L
#include <mach/da8xx.h>, G  g2 H% O& l2 [
#include <mach/mux.h>
) H0 J. n8 m7 E2 L4 @. h  T  x/ x; Q  ]3 T( {3 p8 d! x1 n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 M3 r- \1 x6 Y% o7 J$ q/ E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! E$ y; K) [" D% d+ {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) b' M/ B/ Q0 M" s
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 o& R0 `( B  k3 y

* h6 {7 M0 z, G8 Y# @( ?/* assign the tl som board LED-GPIOs*/
( G# T6 Z; H/ bstatic const short da850_evm_tl_user_led_pins[] = {, b3 ]4 K1 E' e4 p- d9 G  ]' ^) l
        /* These pins are definition at <mach/mux.h> file */
% c7 G6 N. P7 U! P, W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 w  Y8 b# F; t) k+ c, s5 p
        -1$ `9 ^8 p, i1 l7 A. U
};
- j+ N! s5 y4 q0 F: O
; A$ x) T0 _# T* v" u8 Pstatic struct gpio_led da850_evm_tl_leds[] = {
* t7 ~& N  w/ L- l$ M* y        {+ P) A5 Q9 Q0 z$ D) ~5 @. w2 H
                .active_low = 0,
, M$ A  T) a& E; L# H& y                .gpio = DA850_USER_LED0,
  o- {8 j0 Z' F* O$ R% c                .name = "user_led0",
: J/ V, N. G2 P" `+ n                .default_trigger = "default-on",* ^& h% i/ S0 w
        },
* _3 ?* y$ T1 _# z. r4 D        {9 s: H; A2 i! P' x' }
                .active_low = 0,+ R8 G- g! }! v$ X. r
                .gpio = DA850_USER_LED1,
5 M/ H/ }: g' ?) u; {, c                .name = "user_led1",/ f. t( o" S8 K; s, H3 P
                .default_trigger = "default-on",
; A+ {" \7 r6 Y  d        },2 D, h+ m3 E. U+ d
        {! i1 M0 w$ I! q* l  l+ B* @
                .active_low = 0,3 q; r$ u, `1 R+ }' g, B2 D% s
                .gpio = DA850_USER_LED2,2 _+ B; B; p' H3 O: a, v( [
                .name = "user_led2",
2 @0 W6 {6 j4 L* `' [                .default_trigger = "default-on",
, |& S- l, h! s        },
8 c5 I" S% m  S- O8 w        {: b# y: d+ s( H8 u1 Q* h' ~7 u% e
                .active_low = 0,7 _& g- V; Z& R. s& @7 S
                .gpio = DA850_USER_LED3,5 d$ R5 U% m& R  m4 L
                .name = "user_led3",
3 p1 R7 f! x* i! ^$ y- I9 g  m2 A7 ]                .default_trigger = "default-on",
- k3 G8 S2 B) h7 W( a: x        },
9 \9 T3 g& G5 h2 n0 |( K& [};
. ]0 P5 U1 ?% Q  y+ h9 |
* ^# V; V4 Z! ?: H8 ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& @8 P5 A2 R. Y/ |6 c6 `        .leds = da850_evm_tl_leds,
7 V) i/ y7 g. a  A3 L" U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- _/ y; U- V: U7 T+ X* [
};
% ?3 k' a1 o6 g: L
) j; l5 W, O1 a% q2 j4 E6 }static void led_dev_release(struct device *dev)
- y- w8 m" D: I2 h; ~. O% s{9 u& j% i( N, {7 O
};7 S8 B2 C1 a. Y" _1 ]5 ]3 i/ t

# T8 p# m% m* g" Tstatic struct platform_device da850_evm_tl_leds_device = {
: G# X: z8 J. i, |0 A        .name                = "leds-gpio",2 ~  T) B# {: U& D7 W$ N. K" J  t: t3 d
        .id                = 1,
' e! `. [: z4 ]: s: n        .dev = {0 F5 T# C  K* B$ P  S" T
                .platform_data = &da850_evm_tl_leds_pdata,+ a6 J- R* @2 ?. I" ^/ T! l
                .release = led_dev_release,' }: o5 d- I/ I) _6 z, b- J. n
        }
; P# |- D. ]% d* e% s};
* ?3 b: u+ f& ~* Z7 Z& {; M
3 r$ V' m6 H. \. M6 R+ e7 c6 H1 Gstatic int __init led_platform_init(void), S1 x: Z( n. o
{  ]# e$ L: f, v$ ]
        int ret;
* T4 R# k1 o! w# e4 S1 z: s#if 0
* `$ Q& ?1 ]- U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. {. t% s3 Z6 U! S# }
        if (ret)1 v5 f( |6 Y* e  Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% ]6 u* d8 i  R                                "%d\n", ret);( x+ k4 k/ h& D' n* a5 L$ W
#endif
2 \( `" k6 Q9 A3 t        ret = platform_device_register(&da850_evm_tl_leds_device);: x: j& X7 S5 ?" K9 n7 ?, d
        if (ret)" D4 g% k8 G" N8 X& J
                pr_warning("Could not register som GPIO expander LEDS");* M" e1 Z3 c5 Q# o1 _- u
        else
1 i9 `7 n) F. C% g+ B& F1 W9 l  _                printk(KERN_INFO "LED register sucessful!\n");
6 v0 I  d; _% F& |
' L7 F( v% {2 @5 G        return ret;
! G$ R( U# q- K$ ]}7 F4 L% `. I4 a: y- E6 Z) E# r$ v

8 U* w0 p( L* n! S+ g% Vstatic void __exit led_platform_exit(void)2 D3 R; r$ q/ \0 J$ z$ m2 D
{8 H$ B2 V$ `4 B5 }* x
        platform_device_unregister(&da850_evm_tl_leds_device);
  g7 X* g( t( L
5 h; v: h$ b2 {6 D+ @. k; Q5 [  V        printk(KERN_INFO "LED unregister!\n");
: V9 W+ B7 q0 C) b}, f- M2 G- \5 _

0 q1 u. E3 P# `$ _& umodule_init(led_platform_init);
* P' W' y2 G, c* L1 Y* Umodule_exit(led_platform_exit);3 E' `/ \; A* V3 {6 U2 j
3 c% ]0 f+ L( C
MODULE_DESCRIPTION("Led platform driver");: a8 P- F! c0 v8 w' ]: D+ x
MODULE_AUTHOR("Tronlong");
5 F3 }0 a" l  P1 ]MODULE_LICENSE("GPL");% K+ T; \( g5 {6 Z
, y0 J4 C0 [' R: C$ x! v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-30 19:46 , Processed in 0.039939 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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