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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; z  Y# u6 X/ O5 b& \#include <linux/init.h>
( V' ~" _/ w3 U* x% j" ^+ ~#include <linux/module.h>! r9 e: [; s# ~8 j. |, S" G
#include <linux/kernel.h>
, D7 r. Z* ^8 ], p6 g% }* B#include <linux/types.h># i& @: _/ r) Z/ Z
#include <linux/gpio.h>4 g/ y1 V# m2 b. b- y- S. v( d
#include <linux/leds.h>+ u. p0 j: B" Y, h4 T0 D% D+ z
#include <linux/platform_device.h>
0 Q! x+ E; K+ Z3 z  M2 E3 S6 ~$ c8 p! d1 @- W
#include <asm/mach-types.h>( b6 O- C5 e" _- `! f
#include <asm/mach/arch.h>& f  ], [0 R- C, U' R* J
#include <mach/da8xx.h># R" S4 {. y) a3 k; [
#include <mach/mux.h>
4 r) Y  u' Y5 `% s' F' r+ s
; M, U) L5 S# s8 `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" R$ W  Q9 [' N#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 l9 R# P0 D& w& V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* f6 c* F; Y9 q5 j8 j3 K& ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 E$ [# @+ X; H" }) ~1 j
: g9 k. l( M6 ?6 g# G/* assign the tl som board LED-GPIOs*/9 {, ?, L; S' v8 ~& F" @
static const short da850_evm_tl_user_led_pins[] = {0 {0 U' L  _* X5 h( o
        /* These pins are definition at <mach/mux.h> file */* m& P0 C( f! O# x5 N& y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, T& L) H! C* Y5 R! R6 e1 @
        -1* m* e0 ?( f8 u0 Y4 A/ i) u
};0 ~7 T' ~& b1 i$ v; x! G0 ]" A1 c" \
# |. g. ]( A0 e% m3 B7 V
static struct gpio_led da850_evm_tl_leds[] = {2 N) p& R( j6 Z& t, O, k* X+ k
        {
) ?) |: T" J8 \$ k" ^" x" A5 ^- ^                .active_low = 0,
0 ~/ V% h6 S8 e$ R6 K                .gpio = DA850_USER_LED0,& }# e0 e3 W6 h  l- T
                .name = "user_led0",
( t% O. z; [* X- S9 ]                .default_trigger = "default-on",
# F$ e3 W$ F" b* m        },/ c; q4 v9 s/ [4 k  C3 k  `" p
        {
( }! ^* v' M& K7 X- P+ t  C                .active_low = 0,
* O: b$ g" W: q8 G9 }                .gpio = DA850_USER_LED1,
! f* L* d3 H1 m# x                .name = "user_led1",* H5 E7 H6 S) d
                .default_trigger = "default-on",
% S. C. O- T! K5 C        },6 \+ T, h  l2 ?) h
        {8 l5 `. L$ f9 e# d, o! c! F
                .active_low = 0,
9 v3 S$ Z6 f) Z7 \                .gpio = DA850_USER_LED2,! m) s6 Q/ G) H, g1 E
                .name = "user_led2",
, g7 y: ?6 [% U% k, A) w# S                .default_trigger = "default-on",& g% h* I0 V% i/ q0 B% {% R
        },' h$ y: r8 H. L+ q* W
        {& Q2 b6 |/ b- ]+ a
                .active_low = 0,
7 V1 z% k5 o# @                .gpio = DA850_USER_LED3,
& o3 T% O( i% j- E* c8 i                .name = "user_led3",% U' L& d$ L0 ~- u
                .default_trigger = "default-on",% w8 @  V' Q% P" y' z/ H! Q) n
        },. W# h2 `2 P: |
};
9 d' l( t% @3 D( B( A# ?5 Q  k! L" d: S* R2 _$ q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 n" n2 q/ j+ [2 T* q
        .leds = da850_evm_tl_leds,
! ?6 P: [3 `* V! V4 d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 A& i+ Q5 X% j3 U};
$ }3 V& [& H, l6 L% G5 V8 M# P1 {. Y
static void led_dev_release(struct device *dev)" b1 ]' s3 a' [' s+ B
{
$ P& _- V2 w. x$ z};
( I5 y9 |! ]6 {* r, P" p( {
# k) t2 a  g; b5 g8 \- Sstatic struct platform_device da850_evm_tl_leds_device = {
  f) D* B; H  X& O, R        .name                = "leds-gpio",
; z7 c  ]; M$ f+ S. x        .id                = 1,8 {* E. U8 s! o; R
        .dev = {6 E( T: Z) @# F5 x! e# T/ \1 m" f
                .platform_data = &da850_evm_tl_leds_pdata,
, @% i. L2 {( T0 q8 Y                .release = led_dev_release,2 h/ a) r5 \* Q8 p+ g% F7 [
        }
2 L/ O' H' V0 n9 k};. t, F) @! _% X$ m! \$ ?5 B4 s, x

1 Z' s# s4 z7 B5 c; Gstatic int __init led_platform_init(void)( O! O, J. t; }# k8 z
{8 U; S/ I) [9 j3 J% D$ [
        int ret;
# d6 G3 l; O) z' c" i#if 0
$ y- j  R7 H; t" {& ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 M+ p/ D1 z  A" O0 n# `9 o        if (ret)+ R% n* q. {& R9 I5 r% I  ?% b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". F( L+ y' Z  S( _3 F" {4 V" t
                                "%d\n", ret);0 @/ _3 R9 n7 i) M3 `1 e+ R
#endif) R& Y9 x8 V( D: i
        ret = platform_device_register(&da850_evm_tl_leds_device);9 W7 C5 o# Z- C' g$ m
        if (ret)5 N# c; g( M4 I
                pr_warning("Could not register som GPIO expander LEDS");
* n- e& Q0 X! Q" K, B. ]7 {( E' q        else; B2 L. N3 D6 H0 D8 s  K
                printk(KERN_INFO "LED register sucessful!\n");0 t' ^' G- F2 h8 k# x* M% c

% Y; {3 w1 q0 x5 P( ]5 X  x  E        return ret;! P( r( [/ o9 n9 U" H4 E( C/ w3 ~8 `0 _
}
) @6 K/ r7 p0 j* ?$ x1 s
1 y$ u4 f0 J- t) J5 g# B/ Q2 Hstatic void __exit led_platform_exit(void)
0 L' S$ d5 S* T& ^/ L0 Z{
. d! ?& |! S2 X        platform_device_unregister(&da850_evm_tl_leds_device);
8 I. _3 `9 E5 |/ l* U5 b( S+ w7 v
2 T9 B% _7 E9 G2 r2 r+ v8 K3 G/ t        printk(KERN_INFO "LED unregister!\n");
: C0 ]9 n) P  A/ ^}
/ l1 a& v; u' E, j+ a: y8 r/ G9 O: _; M& G! T3 k; o3 T
module_init(led_platform_init);
- y3 I: f" Q4 S. v/ I, Dmodule_exit(led_platform_exit);. }! F) d. t" _# K" \
$ s. }3 d$ y7 \! B
MODULE_DESCRIPTION("Led platform driver");
, n" z. _1 P) P4 T! e. PMODULE_AUTHOR("Tronlong");
3 S1 s. `2 t8 QMODULE_LICENSE("GPL");
; G6 l4 R8 p; f  N- B" Z- Z  x( w4 ~' n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 23:48 , Processed in 0.040812 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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