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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ b: B- e7 x- ^, e2 {#include <linux/init.h>, R1 `0 k' m3 H7 [0 w  Q, @# i
#include <linux/module.h>
+ w" g$ ?/ c4 B  J0 N4 Q" B#include <linux/kernel.h>$ p1 v2 `9 _0 L6 N+ i1 y* b
#include <linux/types.h>
. ^- ~! X) L- R1 z2 h" R- ?#include <linux/gpio.h>
, J: j, v. N2 L. P1 E: v  n#include <linux/leds.h>
" I5 m! s* v7 _  N" t$ ^#include <linux/platform_device.h>6 k/ ^. [- m$ s
# d% C& K5 e8 `3 K; Y: ~& j$ y  g
#include <asm/mach-types.h>
' h6 h6 q/ l6 H' H1 s" K#include <asm/mach/arch.h>
8 i6 l: L, ]; i7 L6 ~9 D2 \: {$ Q#include <mach/da8xx.h>" l( `$ t+ x( i
#include <mach/mux.h>$ }+ i# @. L) o' g3 |' H
7 W0 m, v( z: W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  R# L4 r' U- j4 }3 k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 q7 ]$ E9 U: s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& F1 q! m# E) P3 B5 w- k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. j) ?6 C2 F% @) t: |' ~4 X' h0 ~1 A
* H. O* p- ?7 ^# \5 C) N  q5 l$ D" C/* assign the tl som board LED-GPIOs*/
' @# {& w' y/ O& Q6 ^/ pstatic const short da850_evm_tl_user_led_pins[] = {
! f0 U) L* `# g. r0 S2 ]6 i        /* These pins are definition at <mach/mux.h> file */
, D) z* d: D8 ?        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' g# ]( X) A: C; O* ^        -1
" I+ H6 X9 D, W/ Z7 Z& h/ c};  Y) ~, D; r# k% c  R
/ v2 x0 H: N, n( Z# U
static struct gpio_led da850_evm_tl_leds[] = {
9 @" a! o7 L+ v( O! G' ?# B        {; v) ?$ Y9 W& M3 @% ]: Z9 P& S
                .active_low = 0,
* y% l9 f3 A" S  e6 |- k+ r) z) e$ D                .gpio = DA850_USER_LED0,$ m% Z4 x1 e0 z% v# d
                .name = "user_led0",$ g3 @) _* c2 C$ B- Y( |
                .default_trigger = "default-on",
& d, B; L5 ]" A! j7 h4 W0 X        },9 y% x1 ^# n/ H" {; U
        {
+ m5 i+ F/ H" @/ b. L& L                .active_low = 0,+ g6 x) t6 m* X) [7 c, V) ?
                .gpio = DA850_USER_LED1,& n$ ]  S7 B( z7 _$ \; h
                .name = "user_led1",
& X. A4 s/ h4 u+ K2 ~                .default_trigger = "default-on",$ p  M, @3 u' [
        },
1 O3 w3 a, n2 p( o5 d7 C) G  P) U        {
% [% d( ~$ z5 V: ]8 X                .active_low = 0,
  C. t5 t8 Z) I5 p* ]                .gpio = DA850_USER_LED2,/ _7 r2 O  D3 ~3 S% [
                .name = "user_led2",# @" ]& ~, g. H/ b" m
                .default_trigger = "default-on",
) y  m2 H( \1 A: M% o  T        },6 }8 K) d4 }: u" V# X5 }' v% U
        {
; Z, S/ A0 \5 U/ O9 p                .active_low = 0,( Y( e) E' D8 `2 U
                .gpio = DA850_USER_LED3,1 O+ c4 t  L8 O
                .name = "user_led3",2 F- p' R0 ]/ r( t  B5 ^5 j1 h% x
                .default_trigger = "default-on",8 ~# y' j  j2 F9 K' _1 F
        },
; n0 _2 l* U9 s/ w' I9 ^: t};
9 H5 u! l" {0 \3 N
6 n2 B& W: N( v, Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. V* L; w0 x3 D0 K) v        .leds = da850_evm_tl_leds,
) n) w. I7 o7 e9 S3 }9 b3 h0 ^        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  j7 n7 M  Z; n+ ^};
7 _8 Y& C! _! D$ p) Q. \4 h
5 f: ]7 G8 Z/ M) f1 o) Jstatic void led_dev_release(struct device *dev)9 i1 `5 C* y8 l  E
{( L$ z  t& F* L( l
};
$ q- f  ?2 M9 a/ i' a) S, n5 Y8 `! ]7 E* L' Y
static struct platform_device da850_evm_tl_leds_device = {
) h1 a& K* s; H# A7 I9 A        .name                = "leds-gpio",
4 k% v6 u& b5 v        .id                = 1,9 ]: ]& u. ?7 Z' Y5 |0 O! E; v6 F
        .dev = {
8 O* i; {1 r4 Y* x  n                .platform_data = &da850_evm_tl_leds_pdata,
' g; p+ \1 [5 }% r) l8 y6 s                .release = led_dev_release,
" Y9 `4 G2 E0 o) v% V: N        }
0 ]+ k5 @9 s! Z$ }* h' {};3 a$ Z( G1 q( K

: V3 `* i! l) k' Hstatic int __init led_platform_init(void)- Q, r6 j' f9 Z3 V" ~  x
{# _9 M9 X  D  g3 {
        int ret;
8 O1 V) d7 A. U8 e& I% t- a#if 0( q- p1 s) T% e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. N) F, s( q* H' C) D- O1 _
        if (ret)
5 O+ b  v0 L: x2 g% w2 c6 ~; E4 n                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 |$ P; q' Z- j
                                "%d\n", ret);; X+ s7 k( n- Z- k
#endif
& \' K7 E- q' T; D# u- g* X        ret = platform_device_register(&da850_evm_tl_leds_device);9 D+ [  D' a# I9 w3 }5 b4 L) @
        if (ret)) c/ S) D) x* @4 }
                pr_warning("Could not register som GPIO expander LEDS");5 c$ K' z  [1 Y6 e
        else2 a1 N9 g8 D' d1 |' a
                printk(KERN_INFO "LED register sucessful!\n");
8 ^  Z/ ?' ^! `9 ^' O" K
+ k, @. k: p! ~+ I        return ret;
, }2 W/ Z; _" R, I1 u" l, k6 ]5 H}  N: a- U, ^2 Z2 w2 M

! G0 A4 |0 M+ a4 S3 Rstatic void __exit led_platform_exit(void)) Y  a6 n% M) R$ e+ \9 Y/ {
{( ?2 }: I5 p1 i! {
        platform_device_unregister(&da850_evm_tl_leds_device);
) ^+ |) p/ I+ j9 P0 F
& z* y: g: B6 M" Z/ o7 p0 X        printk(KERN_INFO "LED unregister!\n");
' j. y( r, x' g' j  S# Y, [}' a5 q% T, Z9 q7 t& V% i
; Z* S) x( f3 l7 I$ j% N
module_init(led_platform_init);2 O& R* A6 h  S/ ^& @( ?; _. T
module_exit(led_platform_exit);7 ~. M4 p' v7 [& |5 U3 H
7 ^+ U$ _6 S9 U; }! g
MODULE_DESCRIPTION("Led platform driver");8 ~& W- X4 f& P/ A* _7 k
MODULE_AUTHOR("Tronlong");
% o  G# N) l# oMODULE_LICENSE("GPL");. `$ L9 J0 h; {1 ^: z, _% r
: v3 D) g: P& ^& f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 04:57 , Processed in 0.039061 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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