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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 g+ q/ y8 O" G3 j1 Q1 [+ w0 ?
#include <linux/init.h>
* L- h& j4 X! I( C) I% X#include <linux/module.h>) U2 l6 K8 n. j% F6 M  N' s
#include <linux/kernel.h>6 Y+ d( q0 w4 C  R* U2 k
#include <linux/types.h>1 ^9 x' x( `( R8 o
#include <linux/gpio.h>6 b+ x5 X* Q! s# m5 n) y, l
#include <linux/leds.h>
. n- I  E5 Y# @7 G; j( ?2 z* B" a#include <linux/platform_device.h>
5 q$ T9 a+ S( C- o
5 |2 ~5 x( H8 O8 J#include <asm/mach-types.h>
8 P5 L- V1 _. I4 r, J: n6 h#include <asm/mach/arch.h>
9 U* B' l# j* X7 G) p#include <mach/da8xx.h>% U9 ~1 }: U; Q4 l" c5 n
#include <mach/mux.h>  A( _4 r& T( P+ T. q2 }

, W8 {, B: s1 ~$ ~- P* U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) {$ R- [  B+ m, y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 v* B' s4 I5 d+ x% @  V5 e7 k& y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 l5 q* {  Y) M( O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 U! R5 L+ y. ]# Y) @/ v8 r( u8 i8 S, k3 ?" Z0 r
/* assign the tl som board LED-GPIOs*/7 X5 N) N5 S/ y2 {& L% F, E
static const short da850_evm_tl_user_led_pins[] = {5 z- [$ X3 U& I( k* z7 ~
        /* These pins are definition at <mach/mux.h> file */
  `/ B) [1 n9 I* q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 H! v) [& H& H; i5 k
        -1
+ ^4 N2 P5 _0 J0 u};2 U. C7 ^# S1 H

! P* H' ~. T# H. K+ K8 K( i5 t( hstatic struct gpio_led da850_evm_tl_leds[] = {9 K5 b. Z  R6 x
        {
6 U  V3 Q1 b  Y; w& t/ D" D$ n                .active_low = 0,
# I0 g( F5 A# [1 o; ?3 B- {                .gpio = DA850_USER_LED0,* k: f; t  Q' I9 y; d
                .name = "user_led0",/ O/ ]: l% Z$ i$ y; y0 J
                .default_trigger = "default-on",3 y& W) E+ C- A2 A: D
        },! N" h. F3 N5 O: t- X6 }' ?3 p! t
        {
# g! w; P% R* a) p2 m- q* S                .active_low = 0,4 Q# ^- j1 L5 v+ u6 Z2 B) N$ E
                .gpio = DA850_USER_LED1,; P, H  q# {( W) |6 W, y
                .name = "user_led1",
( G+ @2 X: j$ F. n! Y9 [; q$ {                .default_trigger = "default-on",% f/ N* n6 y6 I. F) _- t5 k
        },* p  b! q" g' o* ~
        {
$ w+ X. Y7 a; D: f                .active_low = 0,
7 _) L: O$ `1 R3 M                .gpio = DA850_USER_LED2,+ M1 v" X! X7 f4 @6 w0 U4 r* v
                .name = "user_led2",( k, q6 B! g: Q( v
                .default_trigger = "default-on",/ Q% o2 f6 t% a  o" {! [
        },
" _; O7 x6 ?& z1 J5 [  T6 x# o        {
6 Z1 ^$ q# L- `# R. _( Q                .active_low = 0,7 V0 B6 Y, e! i) m2 B, r1 b
                .gpio = DA850_USER_LED3,5 Q) W2 l: @) _+ U, r6 H8 l3 B$ {
                .name = "user_led3",
# j8 B  F$ \+ C0 f                .default_trigger = "default-on",' n% o( A$ `5 v. ^! ^' |# }2 w
        },
' E9 C6 [; ~' w6 g7 \& Q+ h};- M% s+ @  n4 g; E2 s# ?. {
" O% y* ~7 Z- o+ ]& P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 \- y3 u3 H+ L8 Q
        .leds = da850_evm_tl_leds,3 Z+ h* g) W; F, k5 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% t0 q! f, B" n+ a& p};
( f4 O9 J* p0 n0 w' Z/ A5 `* c/ j+ W: Q) J8 |3 i$ w0 j, {
static void led_dev_release(struct device *dev)/ d" D# v. \; s  m1 r& J* s; x
{
4 x+ Y- V3 F: G, P};9 `* N  G; `1 ?6 F8 f, s
/ y+ B6 S( P. R. T  \4 W
static struct platform_device da850_evm_tl_leds_device = {! B4 j& t$ v' E1 B9 k
        .name                = "leds-gpio",
& q. d6 P8 ~5 ]+ _- v( H        .id                = 1,
$ @1 T- m) P; A6 j" I        .dev = {" J! q( K. K" [- F3 \! X
                .platform_data = &da850_evm_tl_leds_pdata,, L3 |& W2 d' a' f5 t) s/ ]
                .release = led_dev_release,
; L2 i( o, }: u        }
0 X, ^2 R: s5 E};
4 Q; u+ f: z! W" o) e
! ?% j2 t6 x8 V) p/ L1 y* H& jstatic int __init led_platform_init(void)
$ b/ O6 ?' h  e% d{
7 D. O0 M+ j3 ^/ f" c3 A        int ret;
6 j2 Y7 y! ~/ }6 e#if 0
7 _* u5 p4 T8 e3 r! O6 J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 H) a4 Q, k; b" R
        if (ret)3 m& o2 C; D" N8 v9 J$ f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: z# F, L* A3 d% I                                "%d\n", ret);2 d3 j) y" O& A& |4 a1 E7 ]
#endif
; H2 }" T5 k  h5 D( f        ret = platform_device_register(&da850_evm_tl_leds_device);
8 ]' g' `* Z) I9 _2 i4 f        if (ret)3 T" Z  N$ u2 q2 a1 o/ A$ s
                pr_warning("Could not register som GPIO expander LEDS");9 s: r) E3 ?) |$ |& e2 V
        else, n3 W! [% H7 Q. A* m
                printk(KERN_INFO "LED register sucessful!\n");
% Q/ C' V! t5 j( H9 q+ k. Q6 \6 E- j0 w" x
        return ret;+ x1 v2 ~. `/ K: o1 d
}
" q( y, ^9 F2 E0 }4 {: P" m2 B
' }( I( M. {/ l  f. r9 i: Bstatic void __exit led_platform_exit(void)
: T! U3 v9 W* L, m3 d/ O{7 b+ E- D% o. S
        platform_device_unregister(&da850_evm_tl_leds_device);
! ?2 g( O& ?# ?) R: E& M7 m/ z7 ]7 ]5 b: u
        printk(KERN_INFO "LED unregister!\n");
4 L2 A% l/ @; s; j+ h7 j& k}
8 ^/ Y. I4 K# u/ F/ k6 q6 X! c, a6 _
module_init(led_platform_init);
1 {( Q* E2 s9 @/ G, l( t5 vmodule_exit(led_platform_exit);
2 m. F2 h3 F/ o  i
; {4 g1 M0 c% d0 l" y& |MODULE_DESCRIPTION("Led platform driver");! p6 R* P) \8 Y8 Z, K2 b
MODULE_AUTHOR("Tronlong");
* h6 }* a% B2 ?& ?( E( Z, @; VMODULE_LICENSE("GPL");
0 U3 V: {( ~& [& B& Q6 H/ e) [# d$ O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 01:59 , Processed in 0.077260 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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